Commit Graph

991 Commits

Author SHA1 Message Date
Louis Dionne
0010b72a2e Sandbox: add SearchableSet 2014-07-18 14:50:55 -04:00
Louis Dionne
1d2bda9ef1 Fix ambiguities when defining stuff in the operators namespace 2014-07-17 18:30:40 -04:00
Louis Dionne
e95882b790 Start moving the sandbox out of detail/ 2014-07-17 16:19:38 -04:00
Louis Dionne
3a7944a6de Check laws for Orderable 2014-07-17 12:00:30 -04:00
Louis Dionne
114d8d9ed0 test/list/datatype -> test/list/instance for consistency with test/pair/instance 2014-07-16 17:14:29 -04:00
Louis Dionne
2eb9867ec5 Comparable: Check laws widely 2014-07-16 17:12:19 -04:00
Louis Dionne
b6e46748df Add missing foldable_instance includes. 2014-07-16 16:26:23 -04:00
Louis Dionne
7e8f109d7f Modularize List and add a minimal instance 2014-07-16 16:26:23 -04:00
Louis Dionne
408a5c7db5 Modularize Pair 2014-07-16 16:26:23 -04:00
Louis Dionne
b3f9a3d09a Modularize Logical and remove nullary and_/or_ 2014-07-16 16:26:23 -04:00
Louis Dionne
b0b7b09736 Modularize Iterable 2014-07-16 16:26:23 -04:00
Louis Dionne
674a889347 Modularize Foldable 2014-07-16 16:26:23 -04:00
Louis Dionne
8492b8eea4 Modularize Orderable 2014-07-16 16:26:22 -04:00
Louis Dionne
3c5aa0aceb Modularize Traversable 2014-07-16 16:26:22 -04:00
Louis Dionne
20814674c0 Modularize Monad 2014-07-16 16:26:22 -04:00
Louis Dionne
489353c0cc Modularize Applicative 2014-07-16 16:26:22 -04:00
Louis Dionne
83bd276b3e Modularize Functor 2014-07-16 16:26:22 -04:00
Louis Dionne
c8e8d88753 Modularize Comparable 2014-07-16 16:26:22 -04:00
Louis Dionne
3da2af3ba2 Core: Add test with parametric data type + predicated instance 2014-07-16 16:26:21 -04:00
Louis Dionne
5d68bcdf45 Iterable: Remove the provided Comparable instance 2014-07-15 10:30:50 -04:00
Louis Dionne
c5e3352180 Core: workaround an assertion in Clang with to being a lambda 2014-07-15 10:28:44 -04:00
Louis Dionne
86c0d427a0 StdIntegerSequence: improve the Comparable instance. 2014-07-15 10:05:30 -04:00
Louis Dionne
8a3efe60fe StdTuple: Add note about redundant Applicative instance. 2014-07-14 20:45:14 -04:00
Louis Dionne
b19c801958 Lazy: refactor and make lazy more intuitive. 2014-07-14 20:45:14 -04:00
Louis Dionne
bfc71e548c Functional: make sure curry<N> is idempotent. 2014-07-14 20:45:14 -04:00
Louis Dionne
41c80e1d44 Applicative: make ap variadic. 2014-07-14 20:45:14 -04:00
Louis Dionne
de2959db74 Monad: add >> operator as an equivalent to bind. 2014-07-14 20:45:06 -04:00
Louis Dionne
40a3ef71c0 Add the Traversable type class. 2014-07-14 10:40:45 -04:00
Louis Dionne
a5cab82de8 Core: make default_instance dependent on the type class arguments 2014-07-13 22:38:52 -04:00
Louis Dionne
49d9b40fc1 Core: Allow parametric data types and predicated instances to cohabit. 2014-07-13 22:06:49 -04:00
Louis Dionne
d65d47ba28 Core: use BOOST_HANA_TYPECLASS macro to create type classes. 2014-07-13 19:49:24 -04:00
Louis Dionne
87224fba92 Reorganize Monad unit tests. 2014-07-13 19:47:07 -04:00
Louis Dionne
f998098500 Reorganize Iterable unit tests. 2014-07-13 19:47:07 -04:00
Louis Dionne
e0a981d58a Reorganize Functor unit tests. 2014-07-13 19:47:06 -04:00
Louis Dionne
a0945bc6de Reorganize Foldable unit tests. 2014-07-13 19:47:06 -04:00
Louis Dionne
cb69c60031 Reorganize Comparable unit tests. 2014-07-13 19:47:06 -04:00
Louis Dionne
cf531e560e List: use a more efficient right fold. 2014-07-13 11:42:03 -04:00
Louis Dionne
3248004409 Move the Lazy data type from the sandbox to the library. 2014-07-12 18:11:27 -04:00
Louis Dionne
3889cbe0b8 ext/boost/fusion: use Boost.Fusion algorithms whenever possible. 2014-07-12 15:15:49 -04:00
Louis Dionne
76bd4fb2fa sandbox: add Any to strong datatypes. 2014-07-12 11:59:58 -04:00
Louis Dionne
53a4d872db Adapt boost::tuple. 2014-07-08 11:03:16 -04:00
Louis Dionne
6aa9c3e3c8 Add tests for Fusion tuple. 2014-07-08 10:17:33 -04:00
Louis Dionne
13b330fa41 Move mpl and fusion from ext/ to ext/boost/ 2014-07-08 10:13:02 -04:00
Louis Dionne
41eefb2d29 Remove meaningless or redundant (implied) todos. 2014-07-07 21:33:07 -04:00
Louis Dionne
48bb45394f Type: add a not-too-dirty way to optimize metafunction classes. 2014-07-07 21:33:06 -04:00
Louis Dionne
573c863c49 Type: make metafunction, metafunction_class and template_ valid metafunction classes. 2014-07-07 20:05:11 -04:00
Louis Dionne
eecdf93453 Adapt non-associative ForwardSequences from Boost.Fusion. 2014-07-07 18:17:36 -04:00
Louis Dionne
63e392bde2 Sandbox: prototype for better law checking. 2014-07-07 15:48:30 -04:00
Louis Dionne
7c6d9dd5bc Iterable: add the for_each method 2014-07-07 15:45:31 -04:00
Louis Dionne
0db5c33548 Add laws for Comparable. 2014-07-07 13:56:51 -04:00
Louis Dionne
5a2de2073e Reorganize and rename the adapted/ folder. 2014-07-07 12:42:20 -04:00
Louis Dionne
9bcf7a8f01 Sandbox: explore strong data types. 2014-07-07 11:34:24 -04:00
Louis Dionne
7cb6678d7a Adapt mpl::vector. 2014-07-07 10:20:13 -04:00
Louis Dionne
55a4964434 Adapt mpl::list. 2014-07-07 10:06:17 -04:00
Louis Dionne
9f94924134 Plug the benchmarks with CMake. 2014-07-06 14:59:59 -04:00
Louis Dionne
b89821bed4 Sandbox: Add a Lazy datatype which is a Monad. 2014-07-02 15:43:32 -04:00
Louis Dionne
ad60989660 Sandbox: add a basic Set data structure 2014-07-02 13:41:22 -04:00
Louis Dionne
ffbbfc3528 Sandbox: rename Map to HashMap and create a naive Map 2014-07-02 13:10:56 -04:00
Louis Dionne
5efa23003f Rename join to flatten. 2014-07-01 22:04:56 -04:00
Louis Dionne
faf609157a Remove circular dependencies. 2014-07-01 20:41:04 -04:00
Louis Dionne
ddc0587689 Iterable: remove comparison between arbitrary Iterables 2014-07-01 18:01:42 -04:00
Louis Dionne
70a6c913b7 Type: refactor the interface 2014-07-01 17:32:32 -04:00
Louis Dionne
39c9b1b8e2 Add the bool.hpp header. 2014-07-01 16:45:12 -04:00
Louis Dionne
96a2bb0a7f Core: allow instances to be explicitly disabled 2014-07-01 10:51:42 -04:00
Louis Dionne
2ad7b11509 Sandbox: prototype for finer-grained operator ADL-enabling 2014-06-30 18:08:51 -04:00
Louis Dionne
6a984f3d52 Integral: Remove redundant operators 2014-06-30 16:21:08 -04:00
Louis Dionne
a98850aea3 Sandbox: Remove obsolete Comparable experiments. 2014-06-30 16:21:08 -04:00
Louis Dionne
b845aa71b8 Orderable: add a default instance 2014-06-30 16:21:08 -04:00
Louis Dionne
fb0f102c11 StdArray: use equal instead of == in tests 2014-06-30 15:04:06 -04:00
Louis Dionne
85877825f8 Replace defaults for Comparable by a smarter predicated instance. 2014-06-30 14:22:42 -04:00
Louis Dionne
2f73b6b620 Sandbox: think about ways to provide defaults for Comparable 2014-06-30 12:41:09 -04:00
Louis Dionne
1ab0174907 Use named operators consistently. 2014-06-30 10:17:22 -04:00
Louis Dionne
c255a2f418 Integral: instantiate Orderable 2014-06-29 15:57:33 -04:00
Louis Dionne
8fcad90c09 Add the Orderable type class. 2014-06-26 15:17:09 -04:00
Louis Dionne
1cc9387998 Add detail::wrap. 2014-06-26 12:51:26 -04:00
Louis Dionne
de4864134e StdArray: instantiate List 2014-06-26 12:34:37 -04:00
Louis Dionne
9ce785234c List: instantiate Comparable 2014-06-26 12:15:34 -04:00
Louis Dionne
71be3a9949 Remove the foldable_from_iterable horror. 2014-06-26 11:40:55 -04:00
Louis Dionne
7fb0ea1226 Move integral bug-related unit tests to their subdirectory. 2014-06-26 11:29:04 -04:00
Louis Dionne
44aa641599 List: remove list_t and list_c 2014-06-26 11:01:44 -04:00
Louis Dionne
08de7a9e27 Promote List to a type class. 2014-06-26 01:29:05 -04:00
Louis Dionne
541ad8b341 Maybe: instantiate Foldable 2014-06-26 01:12:37 -04:00
Louis Dionne
379f30d981 Core: fix problems with typeclass specialization 2014-06-25 23:55:29 -04:00
Louis Dionne
65796aeb6e CMake: Automatically discover unit tests and examples. 2014-06-25 23:36:14 -04:00
Louis Dionne
52eead977e Adapt std::pair and instantiate Pair with it. 2014-06-24 21:33:08 -04:00
Louis Dionne
16d4ea0930 Add the Pair type class and data type. 2014-06-24 21:28:20 -04:00
Louis Dionne
229b3422eb sandbox: add tuple experiment 2014-06-24 17:15:03 -04:00
Louis Dionne
1a41064f04 Functor: add fill 2014-06-24 13:38:54 -04:00
Louis Dionne
ea37adf66b Core: rethink type classes 2014-06-23 15:37:29 -04:00
Louis Dionne
5ba2f9abb9 Applicative: rename unit to lift 2014-06-22 10:51:53 -04:00
Louis Dionne
159dbaecf6 Type: improve support for different metafunctions and rename lift 2014-06-22 10:31:10 -04:00
Louis Dionne
fa98685327 Move unit from Monad to Applicative and remove pure. 2014-06-21 19:29:28 -04:00
Louis Dionne
7440fd0c5e Applicative: add Maybe and StdTuple instances 2014-06-21 18:56:33 -04:00
Louis Dionne
585c0b8e76 Add the Applicative type class. 2014-06-21 18:16:56 -04:00
Louis Dionne
09fc489963 sandbox: add an implementation of repeat 2014-06-21 15:10:06 -04:00
Louis Dionne
9a140f885a Use elem instead of ad-hoc lambda in permutations test. 2014-06-21 14:22:46 -04:00
Louis Dionne
dfed9d39e7 Type: add lift and remove trait.hpp header 2014-06-21 14:09:08 -04:00
Louis Dionne
86a2c7e888 sandbox: remove obsolete dispatch experiment 2014-06-21 12:41:22 -04:00
Louis Dionne
7b7bbd2290 Logical: add not_ 2014-06-21 12:39:19 -04:00
Louis Dionne
13e3bf02f6 Core: fix bug with datatype and inheritance 2014-06-21 11:28:15 -04:00
Louis Dionne
56f74519fe Functor: add replace and adjust 2014-06-20 22:54:46 -04:00
Louis Dionne
0a09ddaa97 Foldable: add the elem method 2014-06-20 21:35:58 -04:00
Louis Dionne
2c1bb3a607 sandbox: add a naive and incomplete map implementation 2014-06-20 20:53:33 -04:00
Louis Dionne
2a784b2a78 Core: make sure instantiates works with complimentary type classes 2014-06-20 15:04:39 -04:00
Louis Dionne
3f8198601c Adapt std::list. 2014-06-20 15:02:50 -04:00
Louis Dionne
09b2fff78e Make StdTuple a Monad. 2014-06-19 16:13:18 -04:00
Louis Dionne
56a8a50de2 sandbox: add lazy 2014-06-19 15:33:00 -04:00
Louis Dionne
c7a7aa4c89 Core: add is_a and instantiates 2014-06-19 12:19:51 -04:00
Louis Dionne
6cfe3ac1b9 Functional: add function call and array subscript to placeholders 2014-06-19 11:56:24 -04:00
Louis Dionne
fa005d87e6 sandbox: add matrix multiplication and determinant 2014-06-18 23:38:10 -04:00
Louis Dionne
7e32f59837 core: Add conversion between data types 2014-06-18 20:23:53 -04:00
Louis Dionne
9e06246a67 Comparable: add unit tests for the mcds 2014-06-18 16:51:48 -04:00
Louis Dionne
848ee2a978 Maybe: minor refactoring 2014-06-18 16:35:55 -04:00
Louis Dionne
4043adb494 Core: document and don't require core.hpp for instance and defaults 2014-06-18 16:13:54 -04:00
Louis Dionne
42bb091e71 Foldable: reduce the mcd, steal find from Iterable and improve tests 2014-06-18 13:37:34 -04:00
Louis Dionne
390cc968a3 Integral: make integral<T, n> equivalent to true_ for n >= 1 in a boolean context 2014-06-18 12:22:21 -04:00
Louis Dionne
db9a37c6e4 Monad: test the minimal complete definitions 2014-06-18 10:36:55 -04:00
Louis Dionne
b185b652d7 Type: minor refactoring 2014-06-18 10:24:20 -04:00
Louis Dionne
874c28eade Functional: refactor to reduce coupling 2014-06-18 10:06:19 -04:00
Louis Dionne
d41e17b12b Type: make type<> more compiler-friendly 2014-06-16 08:45:27 -04:00
Louis Dionne
ee9681f7aa Minor ungrouped improvements and bug fixes. 2014-06-16 08:17:08 -04:00
Louis Dionne
199248bda1 sandbox: add a naive Matrix 2014-06-15 18:03:51 -04:00
Louis Dionne
a75d73cd90 sandbox: add is_valid 2014-06-15 15:48:49 -04:00
Louis Dionne
10a050c854 Logical: add conservative eval_if 2014-06-15 15:13:57 -04:00
Louis Dionne
90c9e64755 List: allow 0 arguments in zip_with and sort methods in (mostly) alphabetical order 2014-06-15 11:00:33 -04:00
Louis Dionne
56baf71826 sandbox: remove TODOs in array 2014-06-15 10:18:14 -04:00
Louis Dionne
2496259cb6 sandbox: ongoing attempt to improve if_ 2014-06-14 17:21:10 -04:00
Louis Dionne
8e1d12171a Make Logical a type class 2014-06-14 12:49:06 -04:00
Louis Dionne
92342e0402 Integral: harmonize with std::integral_constant 2014-06-13 23:30:04 -04:00
Louis Dionne
77c925d239 Add examples in Foldable and add the sizeof_ method 2014-06-13 22:16:12 -04:00
Louis Dionne
28e54f6ee9 List: reimplement partition, document sort_by and add permutations 2014-06-13 20:24:14 -04:00
Louis Dionne
2d0f6014e6 sandbox: add old constexpr rational code 2014-06-12 22:32:25 -04:00
Louis Dionne
c1d9ff5529 doc: document instances 2014-06-12 20:36:21 -04:00
Louis Dionne
488ebc24f8 Iterable: test comparison with heterogeneous data types 2014-06-12 16:51:45 -04:00
Louis Dionne
5a74795687 sandbox: add experiment with sfinae -> Maybe 2014-06-12 14:37:11 -04:00
Louis Dionne
d951c3b594 core: document and test the type class instantiation system 2014-06-12 13:33:38 -04:00
Louis Dionne
e93f1eb4e0 Range: make the implementation less naive 2014-06-12 13:33:38 -04:00
Louis Dionne
beca8ade95 Iterable: use the new dispatching system 2014-06-12 09:00:11 -04:00
Louis Dionne
ec10170b57 Use the new dispatching system with Foldable and Functor. 2014-06-12 07:02:24 -04:00
Louis Dionne
9b1cdd81b9 Comparable: update the dispatching system 2014-06-11 16:43:10 -04:00
Louis Dionne
1d81e02944 Fix a bug with c-style variadics in at_index and improve arg<> 2014-06-10 15:12:49 -04:00
Louis Dionne
809101956b Type: add construction capabilities 2014-06-09 18:22:33 -04:00
Louis Dionne
d572e3b094 functional: consider making compose variadic 2014-06-09 18:22:33 -04:00
Louis Dionne
293b066ea4 TypeList: fix the ADL-related bug 2014-06-09 13:19:20 -04:00
Louis Dionne
ee6c805ca8 Type: decouple library from its internal representation 2014-06-09 10:39:05 -04:00
Louis Dionne
2567066828 Type: documentation and decoupling 2014-06-08 16:41:52 -04:00
Louis Dionne
4a013fa8cf sandbox: Another attempt to dispatching for Comparable 2014-06-08 13:52:50 -04:00
Louis Dionne
71a70764e8 maybe: documentation and API improvements 2014-06-07 17:32:34 -04:00
Louis Dionne
d5368c05b4 sandbox: prototype a more flexible dispatching system 2014-06-07 16:36:46 -04:00
Louis Dionne
8984517166 Sandbox: add a (maybe) more clever assert 2014-06-06 11:32:45 -04:00
Louis Dionne
415b5c6906 List: fix a bug in head; don't use c-style variadics 2014-06-05 22:55:19 -04:00
Louis Dionne
d4d82639f5 List: documentation and examples 2014-06-05 22:47:39 -04:00
Louis Dionne
aea42f9d18 Integral: Fix a bug with negative literals. 2014-06-05 22:45:55 -04:00
Louis Dionne
b694f5e465 Integral: Strip cv-qualifiers of the integral type. 2014-06-05 21:17:06 -04:00
Louis Dionne
80d115e017 Sandbox: add a linked list, std::array and std::string 2014-06-05 16:24:14 -04:00
Louis Dionne
b35531430b Sandbox: add operator_ 2014-06-05 03:34:19 -04:00
Louis Dionne
e86b9d3f4a Sandbox: add a possible infix operator implementation 2014-06-05 03:34:12 -04:00
Louis Dionne
b1f9527f83 Add a sandbox directory to test stuff. 2014-06-05 00:05:45 -04:00
Louis Dionne
8cd1863896 Move length from Iterable to Foldable. 2014-06-04 22:19:42 -04:00
Louis Dionne
a902435c76 CMake: put enable_testing() in the top level CMakeLists 2014-06-04 21:24:31 -04:00
Louis Dionne
61f0770b44 Integral: refactoring, documentation and decoupling 2014-06-04 21:24:31 -04:00
Louis Dionne
5b4d569962 Type: Add decltype_ and remove coupling. 2014-06-04 21:24:19 -04:00
Louis Dionne
a1ab4fab6b Functional: add fbind 2014-06-04 11:54:09 -04:00
Louis Dionne
178b25476d Functional: add arg<n> 2014-06-04 11:29:08 -04:00
Louis Dionne
806981bbcf Functional: remove argwise, add on and lockstep 2014-06-04 11:29:00 -04:00
Louis Dionne
c0b7a91e31 Move any, all and none to Foldable. 2014-06-03 12:28:05 -04:00
Louis Dionne
91689fe4f0 Make the header comment and license uniform. 2014-06-03 11:46:24 -04:00
Louis Dionne
4b61774472 Add lazy_foldr to Foldable. 2014-06-03 11:38:54 -04:00
Louis Dionne
b090b57ee4 Use CTest for examples as well as unit tests. 2014-06-02 21:52:27 -04:00
Louis Dionne
f5da7770f3 Test a workaround for ADL problems in type. 2014-06-02 21:52:27 -04:00
Louis Dionne
6215e82a01 Improve type traits and partially document Integral. 2014-06-02 21:49:36 -04:00
Louis Dionne
1cebe9821d Document the Functional module. 2014-06-02 21:49:35 -04:00
Louis Dionne
b0ebffce2f Check Monad laws. 2014-06-01 12:18:51 -04:00
Louis Dionne
49c4417626 Add a genuine minimal Iterable. 2014-06-01 10:35:19 -04:00
Louis Dionne
e77dab7c55 Generalize curry. 2014-06-01 10:03:07 -04:00
Louis Dionne
7b70a24d2b Add user-defined literal for integral constants. 2014-05-31 15:36:02 -04:00
Louis Dionne
cec5d4edf8 Add unpack and remove Functor from Range. 2014-05-31 14:55:11 -04:00
Louis Dionne
7562f8cecf Add argwise to functional. 2014-05-31 14:41:34 -04:00
Louis Dionne
418b8941ad Test Functor laws and modify Type's fmap. 2014-05-31 10:40:21 -04:00
Louis Dionne
decb1a4d8c Add curry<n> to functional. 2014-05-27 15:46:52 -04:00
Louis Dionne
3d9480855e Make Typelist a transparent optimization. 2014-05-27 15:07:01 -04:00
Louis Dionne
3bb00967ef Make Maybe a Monad. 2014-05-27 14:12:11 -04:00
Louis Dionne
09274a9ea3 Make List a Monad. 2014-05-27 11:12:05 -04:00
Louis Dionne
5f616bb4f5 Add the Monad typeclass and make Type a Monad. 2014-05-27 11:01:20 -04:00
Louis Dionne
49672fd986 Introduce datatypes for dispatching. 2014-05-27 10:52:53 -04:00
Louis Dionne
eda7ea303a Add a more efficient at_index algorithm. 2014-05-26 14:21:29 -04:00
Louis Dionne
d85eb7ccb2 Add init to List and implement length better. 2014-05-26 12:32:38 -04:00
Louis Dionne
6086633003 Add sort and partition. 2014-05-26 11:27:05 -04:00
Louis Dionne
12273221e1 Add placeholders in functional/. 2014-05-26 10:07:27 -04:00
Louis Dionne
af94972fb2 Improve unit tests for maximum. 2014-05-25 20:29:38 -04:00
Louis Dionne
003b3ae4b9 Add count to Foldable. 2014-05-25 19:28:00 -04:00
Louis Dionne
c611dcfd73 Allow runtime bool conditions in if_. 2014-05-25 19:24:06 -04:00
Louis Dionne
f1694b3f4c Add find and drop_until to Iterable. 2014-05-25 18:45:10 -04:00
Louis Dionne
93f11124a7 Add the Maybe datatype. 2014-05-25 18:36:43 -04:00
Louis Dionne
24b907db66 Add drop_while to Iterable. 2014-05-25 17:33:41 -04:00
Louis Dionne
d2f725f6fe Add Typelist; an optimized List for types. 2014-05-25 11:06:18 -04:00
Louis Dionne
316f6a14ec Optimize foldl for lifted computations. 2014-05-25 09:51:41 -04:00
Louis Dionne
05593b652c Redefine lift as an equivalence of categories.
This allows us to mechanically translate most type traits, which is
a good hint that we've found a way to merge type computation with
value computation. The problematic type traits will be tackled later.
2014-05-24 19:06:41 -04:00
Louis Dionne
5d57f6808d Use homemade integer_sequence in Range. 2014-05-24 15:41:55 -04:00
Louis Dionne
fd567bd8b1 Add homemade integer_sequence.
<utility> is way too large to include just for that.
2014-05-24 15:41:46 -04:00
Louis Dionne
88f59cf114 Move std_* to adapted/. 2014-05-24 13:28:48 -04:00
Louis Dionne
bea47fa4d2 Add examples. 2014-05-24 13:28:48 -04:00
Louis Dionne
d1133c917b Split type and traits into two headers. 2014-05-24 12:39:12 -04:00
Louis Dionne
b9e8bf180d Add left_folds::variadic_unrolled. 2014-05-23 16:00:40 -04:00
Louis Dionne
c0e005672e Adapt std::integer_sequence. 2014-05-21 19:22:01 -04:00
Louis Dionne
6c87bb8d93 Adapt std::tuple. 2014-05-21 18:37:56 -04:00
Louis Dionne
0032d4bedb Add the fixpoint combinator. 2014-05-21 16:32:12 -04:00
Louis Dionne
4212a430aa Split Range unit tests. 2014-05-20 18:50:30 -04:00
Louis Dionne
e9d396f79d Split Foldable unit tests. 2014-05-20 18:46:56 -04:00
Louis Dionne
d806fb1e8c Split Iterable unit tests. 2014-05-20 18:40:42 -04:00
Louis Dionne
b7440c5190 Use constexpr lambdas whenever possible. Wow. 2014-05-20 18:29:38 -04:00
Louis Dionne
fe1e29bfa9 Fix incorrect use of static_assert. 2014-05-20 17:26:02 -04:00
Louis Dionne
f168f94b43 Use if_ whenever possible in Iterable. 2014-05-20 17:23:04 -04:00
Louis Dionne
20ae6e927c Add partial to functional/. 2014-05-20 16:48:47 -04:00
Louis Dionne
43e5a4e943 Split unit tests for List. 2014-05-20 16:26:59 -04:00
Louis Dionne
723c42ec5d Split logical unit tests. 2014-05-20 15:56:55 -04:00
Louis Dionne
abc623cc09 Use nastier types in mpl_equivalent test. 2014-05-20 14:36:20 -04:00
Louis Dionne
b66c0e8c14 Add list_t. 2014-05-20 13:50:44 -04:00
Louis Dionne
a3036c2bc4 Add id, compose, always and flip. 2014-05-19 17:16:31 -04:00
Louis Dionne
e8f1a71671 Add more functions to List. 2014-05-19 16:39:53 -04:00
Louis Dionne
7d4b1108ab Add sum and product. 2014-05-19 15:38:57 -04:00
Louis Dionne
60270e1699 Add examples with any. 2014-05-19 13:19:58 -04:00
Louis Dionne
0fb1d96522 Adapt std::array. 2014-05-19 13:01:01 -04:00
Louis Dionne
8c7cdf7e02 Add functional utilities. 2014-05-19 12:15:44 -04:00
Louis Dionne
4369952ad6 More tests for Type<>. 2014-05-18 20:55:44 -04:00
Louis Dionne
1fac38b7bc Add any, all, none and {any,all,none}_of. 2014-05-18 20:27:58 -04:00
Louis Dionne
e511cff396 Add logical operations. 2014-05-18 18:21:33 -04:00
Louis Dionne
f6dd4e0bbf Remove redundant Foldable test for Range. 2014-05-18 18:01:17 -04:00
Louis Dionne
d6819d4dc6 Add the Comparable type class. 2014-05-18 17:57:01 -04:00
Louis Dionne
09c0c8a8e1 Add notes on ADL. 2014-05-18 17:22:16 -04:00
Louis Dionne
033770cc42 Add zip_with to List and improve Foldable. 2014-05-18 15:26:35 -04:00
Louis Dionne
02b62cb8e7 Add if_. 2014-05-17 23:53:24 -04:00
Louis Dionne
ebe7b15a54 Add operators to Integral. 2014-05-17 21:00:05 -04:00
Louis Dionne
60add46fb4 Add drop to Iterable. 2014-05-17 20:46:25 -04:00
Louis Dionne
44138a1a53 Add type traits to Type. 2014-05-17 18:31:30 -06:00
Louis Dionne
49a15742a5 Add default operations to Iterable. 2014-05-16 08:46:05 -06:00
Louis Dionne
edb09990fc Add hana::Type. 2014-05-16 08:26:56 -06:00
Louis Dionne
6305321da3 Add Foldable. 2014-05-16 08:17:24 -06:00
Louis Dionne
61f73d4687 Add Range and List. 2014-05-16 07:56:09 -06:00
Louis Dionne
d732f5511b Add hana::Integral. 2014-05-15 16:52:55 -06:00
Louis Dionne
ae803c667b Basic setup. 2014-05-15 16:09:22 -06:00