Louis Dionne
daaba5dfd8
[Map] Provide model of Foldable, improve docs and add insert method.
...
Fixes #41
2015-04-11 12:09:01 -04:00
Louis Dionne
8bd84a5d4b
[Metafunction] Generalize trait to arbitrary Metafunctions and improve docs
2015-04-11 09:29:06 -04:00
Louis Dionne
08e55a7bb6
Rework the relations between Foldable, Iterable and Searchable.
2015-04-10 17:46:14 -04:00
Louis Dionne
55e4a1d083
[Sequence] Try to formulate laws that make sense and improve the documentation
2015-04-09 09:27:09 -04:00
Louis Dionne
3053736ddd
[Tuple] Optimize the equal method
2015-04-08 11:30:00 -04:00
Louis Dionne
80e0adf4e8
[Core] Move wrong to the detail namespace
2015-04-07 19:37:28 -04:00
Louis Dionne
5c1a752a9f
[Pair] Remove the pair constructor in favor of make_pair
2015-04-07 19:26:59 -04:00
Louis Dionne
40216cde23
[MonadPlus] Add the remove and remove_if functions to MonadPlus
2015-04-07 16:27:39 -04:00
Louis Dionne
0a46420c02
[Type] Major refactoring and improvements
...
- Make decltype_ the identity on Types
- Add the alignof_ function
- Allow sizeof_ to work with non-Types
- Remove the trait_ helper
- Allow Metafunctions to be called with non-Types
- Add make<Type>, which is equivalent to decltype_
2015-04-07 12:12:52 -04:00
Louis Dionne
0819846fba
[Example] Add a sequence based implementation of overload_linearly
2015-04-06 15:10:27 -04:00
Louis Dionne
84bc1a6a06
[Functional] Group the examples into a single file
2015-04-06 14:58:04 -04:00
Louis Dionne
125fd45bfd
[Functional] Add the overload_linearly utility
2015-04-06 14:11:42 -04:00
Louis Dionne
1d7f28f941
[CMake] Improve the build system
...
- Simplify the compiler flag logic
- Use WARNING instead of STATUS to report caveats
- Allow specifying a custom libc++ root directory
2015-04-02 00:50:58 -04:00
Louis Dionne
13392c7ed2
[Foldable] Use overloads for {maximum,minimum}_by
2015-04-01 19:28:42 -04:00
Louis Dionne
eb4f07a61c
[Sequence] Use overloads for sort/sort_by and group/group_by
2015-04-01 19:28:42 -04:00
Louis Dionne
aaaab0e11d
[Foldable] Allow specifying the Monoid/Ring for sum/product
...
Fixes #33
2015-04-01 16:19:37 -04:00
Louis Dionne
3986e3c870
[Sequence] Fix compilation error in Sequence example
2015-03-31 19:57:09 -04:00
Louis Dionne
38e02e9f53
[Sequence] Rename scan{l,r,l1,r1} similarly to folds
2015-03-31 17:55:27 -04:00
Louis Dionne
59d7e36726
[Sequence] Rename unfolds and flip their parameters
2015-03-30 18:17:42 -04:00
Louis Dionne
2c86ba2390
[Foldable] Rename the different fold variants
...
- Rename fold{l,r,l1,r1} to fold.{right,left} with overloads.
- Rename foldlM/foldrM to monadic_fold.{left,right}
- Add no-state variants of the monadic folds
- Improve the fold's documentation
- Deprecate the previous folds; they'll be removed soon
Fixes #18 .
2015-03-30 17:29:37 -04:00
Louis Dionne
a98d32cae1
[Maybe] *just(x) is now equivalent to from_just
2015-03-29 10:39:04 -04:00
Louis Dionne
637c5270ab
[Functional] Add hana::capture
2015-03-28 22:22:13 -04:00
Louis Dionne
2ecedc140c
[Functional] Add the iterate combinator
2015-03-25 12:26:04 -04:00
Louis Dionne
afa9171eec
[Foldable] Add fold and reverse_fold aliases
2015-03-22 17:18:26 -04:00
Louis Dionne
2bd2b1239c
Fix bugs with copy constructors in almost all the containers
2015-03-22 12:15:32 -04:00
Louis Dionne
5211da5a5d
[Logical/Lazy] Tie eval_if and eval together, and update the docs
...
- Improve the documentation and tests of Lazy
- Add missing `operator!` to Logical's documentation
- In `eval_if`, evaluate branches with `eval` for more flexibility
- Use `lazy` instead of ugly workarounds in Sequence and Iterable
2015-03-22 10:58:21 -04:00
Louis Dionne
519b4cfb82
[Examples] Make the indexed_sort more generic
2015-03-22 10:58:21 -04:00
Louis Dionne
317724ac8c
[Example] Add an example of sorting types but keeping the initial indices
2015-03-20 14:30:17 -04:00
Louis Dionne
466bb3c1ad
Add the Comonad concept and refactor Lazy
2015-03-20 11:55:32 -04:00
Louis Dionne
2d1edb14ff
[CMake] Disable some failing Fusion unit tests
2015-03-20 00:44:23 -04:00
Louis Dionne
dbde9d84c4
[Mini-MPL] Make find/find_if SFINAE-friendly
2015-03-15 12:54:35 -04:00
Louis Dionne
bc0212c712
[Example] Move the mini-MPL to example/misc
2015-03-15 00:18:31 -04:00
Louis Dionne
463040d318
[Searchable] Rename find to find_if and lookup to find
2015-03-15 00:18:31 -04:00
Louis Dionne
b69f29ac7a
[Functor] Rename replace to replace_if, and add replace
2015-03-15 00:18:30 -04:00
Louis Dionne
bcf573ccc6
[Functor] Rename adjust to adjust_if and add adjust
2015-03-15 00:18:30 -04:00
Louis Dionne
cde54c9ec0
[Foldable] Rename count to count_if and add count
2015-03-15 00:18:30 -04:00
Louis Dionne
112e34e8a1
[Foldable] Add a size alias to length
2015-03-13 19:54:28 -04:00
Louis Dionne
ee329961b2
[Tutorial] Add a section on assertions
2015-03-13 12:14:35 -04:00
Louis Dionne
af4ff59bfb
[Core] Add is_a and make sure models<> returns an IntegralConstant
2015-03-13 12:14:32 -04:00
Louis Dionne
ceba2336c3
[Examples] Add an example of compile-time printf formatting
2015-03-12 15:00:15 -04:00
Louis Dionne
56484a3ac9
[CMake] Improve the build system and the targets
...
- Split targets to compile and run tests
- Add run.* targets to run each target
2015-03-12 14:44:14 -04:00
Louis Dionne
9cc9ca4b0e
[Travis] Add support for Travis CI
2015-03-12 14:42:50 -04:00
Louis Dionne
4671796d28
[Pair] Add make_pair and improve tests
2015-03-12 11:52:51 -04:00
Louis Dionne
39079fa95a
[Foldable] Add monadic folds
2015-03-10 09:30:07 -04:00
Louis Dionne
ea601ddf60
[Maybe] Add the sfinae utility
2015-03-10 09:30:06 -04:00
Louis Dionne
8a73a3208e
[Map] Add make<Map> and remove map(...)
2015-03-07 21:28:07 -05:00
Louis Dionne
bd4daea264
Use models<Concept, T> instead of models<Concept(T)>, and check data types at the top level
2015-03-07 21:27:46 -05:00
Louis Dionne
cc76ebbba2
[IntegralDomain] Use rem instead of mod, and change laws so it's consistent with %
2015-03-05 12:25:50 -05:00
Louis Dionne
9388fe52eb
[CMake + Config] Successfully compile on Clang 3.5 and improve diagnostics
...
Also disable fusion's adapters tests, which are currently broken
2015-03-05 09:35:06 -05:00
Louis Dionne
c93a250d87
[Constant] Make value a nullary method depending only on the type
2015-03-04 16:36:40 -05:00