From 469094b0df07b6e4606014581fcb8b68bf6c55d6 Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Mon, 1 Oct 2018 09:20:22 +0200 Subject: Revert "Update code.kummerlaender.eu links" This reverts commit 7d937830c21636eddc67bd2b2479cb7a436a7657. --- ...5-03-06_using_scheme_as_a_metaphor_for_template_metaprogramming.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'articles/2015-03-06_using_scheme_as_a_metaphor_for_template_metaprogramming.md') diff --git a/articles/2015-03-06_using_scheme_as_a_metaphor_for_template_metaprogramming.md b/articles/2015-03-06_using_scheme_as_a_metaphor_for_template_metaprogramming.md index 6ab4f16..cfc1673 100644 --- a/articles/2015-03-06_using_scheme_as_a_metaphor_for_template_metaprogramming.md +++ b/articles/2015-03-06_using_scheme_as_a_metaphor_for_template_metaprogramming.md @@ -209,7 +209,7 @@ Both of these examples are certainly not what [TypeAsValue] might be used for in While the _Scheme_ metaphor for template metaprogramming in C++ certainly has its limits, especially in the area of anonymous functions, I think that this article as well as the actual implementation of [TypeAsValue] are proof that it holds up quite well in many circumstances. As stated in the introduction to this article I was very surprised how close template metaprogramming can feel to a _real_ functional programming language. -All listings in this article as well as the [TypeAsValue] library itself are freely available under the terms of the MIT license on [Github] and [Gitea]. Feel free to check them out and contribute - I am especially interested in practical solutions to providing better partial function application support or even full compile time lambda expressions that do not require the whole library to be designed around this concept. +All listings in this article as well as the [TypeAsValue] library itself are freely available under the terms of the MIT license on [Github] and [cgit]. Feel free to check them out and contribute - I am especially interested in practical solutions to providing better partial function application support or even full compile time lambda expressions that do not require the whole library to be designed around this concept. Finally I want to reference the [Boost MPL] library which supports everything and more than the solution described in this article without relying on any _modern_ language features such as variadic templates. All _non-experimental_ projects should probably use it instead of [TypeAsValue], not the least because of greater portability. @@ -226,7 +226,7 @@ Finally I want to reference the [Boost MPL] library which supports everything an [example applications]: https://github.com/KnairdA/TypeAsValue/tree/master/example [Boost MPL]: http://www.boost.org/doc/libs/1_57_0/libs/mpl/doc/index.html [Github]: https://github.com/KnairdA/TypeAsValue/ -[Gitea]: https://code.kummerlaender.eu/adrian/TypeAsValue/ +[cgit]: http://code.kummerlaender.eu/TypeAsValue/ [`std::integral_constant`]: http://en.cppreference.com/w/cpp/types/integral_constant [`std::bind`]: http://en.cppreference.com/w/cpp/utility/functional/bind -- cgit v1.2.3