<feed xmlns='http://www.w3.org/2005/Atom'>
<title>TypeAsValue/src/utility, branch master</title>
<subtitle>C++ compile time computation library using types as values and templates as functions</subtitle>
<link rel='alternate' type='text/html' href='http://code.kummerlaender.eu/TypeAsValue/'/>
<entry>
<title>Replaced `utility::defer_eval` with placeholder-less `Apply`</title>
<updated>2015-02-24T15:51:37+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2015-02-24T15:51:37+00:00</published>
<link rel='alternate' type='text/html' href='http://code.kummerlaender.eu/TypeAsValue/commit/?id=a3a0d6a1fa880b324576bb073637e021c57b0e65'/>
<id>a3a0d6a1fa880b324576bb073637e021c57b0e65</id>
<content type='text'>
* usage of `Apply` sans placeholders was already possible and as such duplicated `utility::defer_eval`
* renamed `apply_none`'s type alias from to `type` to enable combining it with `Eval`
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* usage of `Apply` sans placeholders was already possible and as such duplicated `utility::defer_eval`
* renamed `apply_none`'s type alias from to `type` to enable combining it with `Eval`
</pre>
</div>
</content>
</entry>
<entry>
<title>Reimplemented `Find` in terms of `ListIndex`</title>
<updated>2015-02-19T12:45:07+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2015-02-19T12:45:07+00:00</published>
<link rel='alternate' type='text/html' href='http://code.kummerlaender.eu/TypeAsValue/commit/?id=a8bec66b05eece7b8a39102fb1b0ba8f778eb9fe'/>
<id>a8bec66b05eece7b8a39102fb1b0ba8f778eb9fe</id>
<content type='text'>
* `ListIndex` already implements the necessary partial template specializations for finding elements matching a predicate
* reimplemented `Cond` using `detail::find_variadic` as `Find` depends on `Apply` which in turn depends on `Cond`
** it is useful if core functionality such as the branched conditional `Cond` do not require higher order functionality such as `Find`
*** otherwise one can not use core functionality in the implementation of higher order functionality
* introduced `utility::predicate_guard` helper template
** checks a given value using a predicate and only forwards the value to the guarded function if this check is successful
** if check is unsuccessful it returns a surrogate value simmilar to `utility::predicate_assurance`
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* `ListIndex` already implements the necessary partial template specializations for finding elements matching a predicate
* reimplemented `Cond` using `detail::find_variadic` as `Find` depends on `Apply` which in turn depends on `Cond`
** it is useful if core functionality such as the branched conditional `Cond` do not require higher order functionality such as `Find`
*** otherwise one can not use core functionality in the implementation of higher order functionality
* introduced `utility::predicate_guard` helper template
** checks a given value using a predicate and only forwards the value to the guarded function if this check is successful
** if check is unsuccessful it returns a surrogate value simmilar to `utility::predicate_assurance`
</pre>
</div>
</content>
</entry>
<entry>
<title>Reimplemented `TakeWhile` and `DropWhile` in terms of `ListIndex`</title>
<updated>2015-02-17T21:47:56+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2015-02-17T21:47:56+00:00</published>
<link rel='alternate' type='text/html' href='http://code.kummerlaender.eu/TypeAsValue/commit/?id=af5662781840ac45c21cbf14cbc7973bcf39d1da'/>
<id>af5662781840ac45c21cbf14cbc7973bcf39d1da</id>
<content type='text'>
* new higher order list operation `ListIndex` returns the index of the first list element satisfying a given predicate function
** this enables finding the split index required for both `TakeWhile` and `DropWhile`
** actual list manipulation is then performed using lower order `Take` or `Drop`
** analogously to `list-index` in SRFI-1
** added appropriate test case
* added higher order predicate utility function `utility::predicate_assurance`
** as its name implies this function enables assuring that a value satisfies a given predicate
*** if this is not the case a surrogate value is returned instead
** this is used to return a appropriate size value if the `ListIndex` call fails because no element satisfies its predicate
** `detail::predicate_negator` was moved from `Remove`'s implementation details into the newly introduced `utility` namespace
*** as it is required by both `TakeWhile` and `DropWhile` in addition to `Remove`
* continuation of 8e49cc6
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* new higher order list operation `ListIndex` returns the index of the first list element satisfying a given predicate function
** this enables finding the split index required for both `TakeWhile` and `DropWhile`
** actual list manipulation is then performed using lower order `Take` or `Drop`
** analogously to `list-index` in SRFI-1
** added appropriate test case
* added higher order predicate utility function `utility::predicate_assurance`
** as its name implies this function enables assuring that a value satisfies a given predicate
*** if this is not the case a surrogate value is returned instead
** this is used to return a appropriate size value if the `ListIndex` call fails because no element satisfies its predicate
** `detail::predicate_negator` was moved from `Remove`'s implementation details into the newly introduced `utility` namespace
*** as it is required by both `TakeWhile` and `DropWhile` in addition to `Remove`
* continuation of 8e49cc6
</pre>
</div>
</content>
</entry>
</feed>
