aboutsummaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/00_content/articles/2015-03-06_using_scheme_as_a_metaphor_for_template_metaprogramming.md31
-rw-r--r--source/00_content/pages/projects/type_as_value.md9
2 files changed, 22 insertions, 18 deletions
diff --git a/source/00_content/articles/2015-03-06_using_scheme_as_a_metaphor_for_template_metaprogramming.md b/source/00_content/articles/2015-03-06_using_scheme_as_a_metaphor_for_template_metaprogramming.md
index 436db77..bd14983 100644
--- a/source/00_content/articles/2015-03-06_using_scheme_as_a_metaphor_for_template_metaprogramming.md
+++ b/source/00_content/articles/2015-03-06_using_scheme_as_a_metaphor_for_template_metaprogramming.md
@@ -232,22 +232,23 @@ Finally I want to reference the [Boost MPL] library which supports everything an
[ConstList]: /page/const_list/
[TypeAsValue]: /page/type_as_value/
[SRFI-1]: http://srfi.schemers.org/srfi-1/srfi-1.html
-[`std::integral_constant`]: http://en.cppreference.com/w/cpp/types/integral_constant
-[`std::bind`]: http://en.cppreference.com/w/cpp/utility/functional/bind
-[`tav::Filter`]: https://github.com/KnairdA/TypeAsValue/blob/master/src/list/operation/higher/filter.h
-[`tav::Any`]: https://github.com/KnairdA/TypeAsValue/blob/master/src/list/operation/higher/query.h
-[`tav::Every`]: https://github.com/KnairdA/TypeAsValue/blob/master/src/list/operation/higher/query.h
-[`tav::Fold`]: https://github.com/KnairdA/TypeAsValue/blob/master/src/list/operation/higher/fold.h
-[`tav::Sort`]: https://github.com/KnairdA/TypeAsValue/blob/master/src/list/operation/higher/sort.h
-[`tav::Apply`]: https://github.com/KnairdA/TypeAsValue/blob/master/src/function/apply.h
-[`tav::detail::placeholder`]: https://github.com/KnairdA/TypeAsValue/blob/master/src/function/detail/placeholder.h
-[`tav::And`]: https://github.com/KnairdA/TypeAsValue/blob/master/src/operation/logic.h
-[`tav::Eval`]: https://github.com/KnairdA/TypeAsValue/blob/master/src/type.h
-[`tav::Pair`]: https://github.com/KnairdA/TypeAsValue/blob/master/src/pair.h
-[`tav::Cons`]: https://github.com/KnairdA/TypeAsValue/blob/master/src/list/cons.h
-[`tav::List`]: https://github.com/KnairdA/TypeAsValue/blob/master/src/list/list.h
-[`tav::Cond`]: https://github.com/KnairdA/TypeAsValue/blob/master/src/conditional/cond.h
[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/
[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
+[`tav::Filter`]: https://github.com/KnairdA/TypeAsValue/blob/299781bccc5c7d1b212198b5a9a55ee9447603c5/src/list/operation/higher/filter.h
+[`tav::Any`]: https://github.com/KnairdA/TypeAsValue/blob/299781bccc5c7d1b212198b5a9a55ee9447603c5/src/list/operation/higher/query.h
+[`tav::Every`]: https://github.com/KnairdA/TypeAsValue/blob/299781bccc5c7d1b212198b5a9a55ee9447603c5/src/list/operation/higher/query.h
+[`tav::Fold`]: https://github.com/KnairdA/TypeAsValue/blob/299781bccc5c7d1b212198b5a9a55ee9447603c5/src/list/operation/higher/fold.h
+[`tav::Sort`]: https://github.com/KnairdA/TypeAsValue/blob/299781bccc5c7d1b212198b5a9a55ee9447603c5/src/list/operation/higher/sort.h
+[`tav::Apply`]: https://github.com/KnairdA/TypeAsValue/blob/299781bccc5c7d1b212198b5a9a55ee9447603c5/src/function/apply.h
+[`tav::detail::placeholder`]: https://github.com/KnairdA/TypeAsValue/blob/299781bccc5c7d1b212198b5a9a55ee9447603c5/src/function/detail/placeholder.h
+[`tav::And`]: https://github.com/KnairdA/TypeAsValue/blob/299781bccc5c7d1b212198b5a9a55ee9447603c5/src/operation/logic.h
+[`tav::Eval`]: https://github.com/KnairdA/TypeAsValue/blob/299781bccc5c7d1b212198b5a9a55ee9447603c5/src/type.h
+[`tav::Pair`]: https://github.com/KnairdA/TypeAsValue/blob/299781bccc5c7d1b212198b5a9a55ee9447603c5/src/pair.h
+[`tav::Cons`]: https://github.com/KnairdA/TypeAsValue/blob/299781bccc5c7d1b212198b5a9a55ee9447603c5/src/list/cons.h
+[`tav::List`]: https://github.com/KnairdA/TypeAsValue/blob/299781bccc5c7d1b212198b5a9a55ee9447603c5/src/list/list.h
+[`tav::Cond`]: https://github.com/KnairdA/TypeAsValue/blob/299781bccc5c7d1b212198b5a9a55ee9447603c5/src/conditional/cond.h
diff --git a/source/00_content/pages/projects/type_as_value.md b/source/00_content/pages/projects/type_as_value.md
index 839e691..5a8e37a 100644
--- a/source/00_content/pages/projects/type_as_value.md
+++ b/source/00_content/pages/projects/type_as_value.md
@@ -4,10 +4,12 @@
As its name implies it follows the overall concept of viewing types as values and templates as functions manipulating those values.
-This library is a expanded reimplementation of my previous attempt at this problem: [ConstList]. As detailed in the appropriate [blog article] the mixed approach between generic lambda expressions, `constexpr` marked functions and template metaprogramming doesn't offer sufficient flexibility which led me to approach compile time computation in a slightly different manner via this new library. As one might notice this boils down to using _Scheme_ as a metaphor for C++ template metaprogramming. In fact all [test cases] and examples are documented by representing their logic in _Scheme_.
+This library is a expanded reimplementation of my previous attempt at this problem: [ConstList]. As detailed in the appropriate [blog article] the mixed approach between generic lambda expressions, `constexpr` marked functions and template metaprogramming doesn't offer sufficient flexibility which led me to approach compile time computation in a slightly different manner via this new library. As one might notice this boils down to using _Scheme_ as a metaphor for C++ template metaprogramming. In fact all [test cases] and [examples] are documented by representing their logic in _Scheme_.
Its MIT licensed source code is available on both [Github] and [cgit].
+Furthermore an overview of this library alongside some background information is available in the form of a blog article on [using _Scheme_ as a metaphor for template metaprogramming].
+
## Current features
* guaranteed evaluation during compile time
@@ -41,11 +43,12 @@ const std::size_t count = tav::Length<
~~~
{: .language-cpp}
-Additionally there is a implementation of the _Sieve of Eratosthenes_ available as a more extensive [example].
+More extensive [examples] are available in the form of implementations of the _Sieve of Eratosthenes_ as well as of a _Turing machine_.
[ConstList]: /page/const_list/
[blog article]: /article/a_look_at_compile_time_computation_in_cpp/
+[using _Scheme_ as a metaphor for template metaprogramming]: /article/using_scheme_as_a_metaphor_for_template_metaprogramming/
[Github]: https://github.com/KnairdA/TypeAsValue/
[cgit]: http://code.kummerlaender.eu/TypeAsValue/
[test cases]: https://github.com/KnairdA/TypeAsValue/blob/master/test.cc
-[example]: https://github.com/KnairdA/TypeAsValue/blob/master/example/prime/prime.cc
+[examples]: https://github.com/KnairdA/TypeAsValue/blob/master/example/