Commit Graph

123 Commits

Author SHA1 Message Date
Louis Dionne
b21fdc32de [Detail] Remove obsolete detail::wrap utility 2015-04-10 09:38:32 -04:00
Louis Dionne
17169d99d3 [Constant] Document conversions, embeddings and related material. Fix TODOS 2015-04-09 11:18:03 -04:00
Louis Dionne
22b82faacc [Detail] Optimize the left and right variadic folds 2015-04-08 11:20:00 -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
3c2aa421b5 [Tuple] Provide efficient folds for tuple_t
Fixes #32
2015-04-06 14:28:09 -04:00
Louis Dionne
7402a010ec [Tests] Track test::integer and use hana::capture instead of lambda capture to workaround Clang bug 2015-03-29 01:31:31 -04:00
Louis Dionne
ab1d294cec [Tests] Remove obsolete automatic tests in test/auto. 2015-03-26 02:08:44 -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
52afb17a43 [Tests] Split unit tests in a much more clever way using CMake 2015-03-18 19:28:21 -04:00
Louis Dionne
5ab6925364 [Test] Fix some tests that fail on Travis and remove warnings 2015-03-15 00:18:31 -04:00
Louis Dionne
7a309d08c6 [Type] Remove some places where we read from non-constexpr variables 2015-03-13 19:54:28 -04:00
Louis Dionne
d525c20397 [Detail] Add an helper to compute tuple cartesian products 2015-03-07 12:09:02 -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
065b910128 Update copyright year. 2015-03-03 14:16:50 -05:00
Louis Dionne
dd86906e2d [Tuple] Make sure _tuple is default constructible when its elements are 2015-02-28 11:35:33 -05:00
Louis Dionne
aa6eac6c3d [Config] Move BOOST_HANA_CONSTEXPR_LAMBDA to config.hpp 2015-02-25 10:20:12 -05:00
Louis Dionne
3e78af4bcb [Tuple] Use make<Tuple>(...) instead of tuple(...) 2015-02-22 16:50:01 -05:00
Louis Dionne
7dad374f1f [Tuple] Fix a nasty double-move in flatten 2015-02-22 16:50:00 -05:00
Louis Dionne
9c32ebe263 [Detail] Remove detail::n_times, which is replaced by int_<i>.times 2015-02-10 20:03:49 -05:00
Louis Dionne
2604c9eb53 [Detail] Add the CanonicalConstant helper 2015-02-10 18:03:18 -05:00
Louis Dionne
6f267bd37b Add detail::generate_integer_sequence. 2015-01-13 15:49:30 -05:00
Louis Dionne
0371952337 Make while_ part of Logical 2014-12-06 16:30:14 -05:00
Louis Dionne
51912d8661 Add detail::while_ and detail::until. 2014-11-29 12:17:25 -05:00
Louis Dionne
8756e81977 Add boost/hana/config.hpp and BOOST_HANA_*_CHECK macros. 2014-11-10 17:52:33 -05:00
Louis Dionne
19b5cd44cf Improve unit tests for detail::create 2014-11-07 21:33:24 -05:00
Louis Dionne
049046478e Move ASSERT macros out of the details 2014-11-04 09:43:44 -05:00
Louis Dionne
1e8726f394 Make the tuple implementation constexpr-friendly.
- Move the lambda-based tuple to the sandbox
- Use the multiple inheritance based tuple instead
2014-11-04 09:02:31 -05:00
Louis Dionne
647ad436b0 Reorganize the unit tests and increase the overall coverage. 2014-11-04 08:54:58 -05:00
Louis Dionne
217e1d2b46 Add BOOST_HANA_ASSERT. 2014-11-03 10:22:19 -05:00
Louis Dionne
f33c23b67e Add an alternative tuple implementation using multiple inheritance. 2014-11-03 10:22:19 -05:00
Louis Dionne
8590ce9376 Add detail::reverse_partial 2014-10-28 14:38:49 -04:00
Louis Dionne
c37916cdd4 Make variadic folds function objects. 2014-10-28 14:22:59 -04:00
Louis Dionne
a6310a046d Simplify the closure type 2014-10-28 14:22:58 -04:00
Louis Dionne
629b487d4c Add the detail::create utility. 2014-10-28 13:51:05 -04:00
Louis Dionne
220d92ed82 Use a nested hana struct to customize stuff inside user defined objects. 2014-10-27 15:24:14 -04:00
Louis Dionne
c2541c3713 Add detail::closure based on multiple-inheritance 2014-10-25 14:34:31 -04:00
Louis Dionne
002320cdf6 Add variadic take and variadic split_at. 2014-10-11 15:58:04 -04:00
Louis Dionne
d06cd559ba Add the times method to Integrals 2014-09-29 16:31:59 -04:00
Louis Dionne
a434f561d4 Add perfect forwarding in variadic folds and for_each. 2014-09-26 15:29:36 -04:00
Louis Dionne
a44e9b8d17 Benchmark a different way of reversing a parameter pack. 2014-09-22 11:13:28 -04:00
Louis Dionne
980cda48ef Detail: add variadic::drop_into 2014-09-01 10:02:45 -04:00
Louis Dionne
faef709431 Minor improvements:
- Test that detail::variadic::at can handle const objects
- Add perfect forwarding in functional/id
- Sandbox: experiment with a std compatible tuple
2014-08-31 10:16:03 -04:00
Louis Dionne
919bc2f465 Move for_each to Foldable and optimize it with unpack 2014-08-28 12:53:33 -04:00
Louis Dionne
d6b765f794 Add variadic::reverse_apply 2014-08-28 10:47:35 -04:00
Louis Dionne
307d3d0ec8 Huge reorganization and refactoring.
- Split type class instances into separate files
- Instances provided automatically by a type class are actually MCDs
- Test each instance in a single file, not one file per method
- Refactor the operator system to fix the ADL-related bug.
2014-08-18 19:26:29 -04:00
Louis Dionne
7894be3e2f Searchable: add the subset method 2014-08-16 14:25:58 -04:00
Louis Dionne
1d986e4c04 Refactor the unit tests and examples
In particular, merge some unit tests and examples to reduce compilation
times.
2014-08-10 15:42:03 -04:00
Louis Dionne
4c13c21f91 Add the IntegralDomain type class 2014-08-10 12:57:37 -04:00
Louis Dionne
356ee03483 Refactor the unit tests and remove some minimal instances 2014-08-09 17:49:16 -04:00
Louis Dionne
3d5acb2080 Remove old scattered operations on variadics 2014-08-07 17:56:30 -04:00
Louis Dionne
c7af842ea5 Detail: refactor variadic folds and at 2014-08-06 17:59:24 -04:00
Louis Dionne
d132db0ebf Use finer grained assertions acknowledging Constants 2014-08-05 10:37:54 -04:00
Louis Dionne
8a8ff797ab Split Core into subdirectories to reduce dependencies. 2014-07-30 11:15:26 -04:00
Louis Dionne
9199f53ae2 Reintroduce foldl optimizations for TypeList. 2014-07-29 01:26:18 -04:00
Louis Dionne
c816fbe112 Remove almost all dependencies on the standard library. 2014-07-21 21:07:14 -04:00
Louis Dionne
7e8f109d7f Modularize List and add a minimal instance 2014-07-16 16:26:23 -04:00
Louis Dionne
cf531e560e List: use a more efficient right fold. 2014-07-13 11:42:03 -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
1cc9387998 Add detail::wrap. 2014-06-26 12:51:26 -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
2567066828 Type: documentation and decoupling 2014-06-08 16:41:52 -04:00
Louis Dionne
806981bbcf Functional: remove argwise, add on and lockstep 2014-06-04 11:29:00 -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
eda7ea303a Add a more efficient at_index algorithm. 2014-05-26 14:21:29 -04:00
Louis Dionne
316f6a14ec Optimize foldl for lifted computations. 2014-05-25 09:51:41 -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
b9e8bf180d Add left_folds::variadic_unrolled. 2014-05-23 16:00:40 -04:00
Louis Dionne
b7440c5190 Use constexpr lambdas whenever possible. Wow. 2014-05-20 18:29:38 -04:00
Louis Dionne
d6819d4dc6 Add the Comparable type class. 2014-05-18 17:57:01 -04:00
Louis Dionne
033770cc42 Add zip_with to List and improve Foldable. 2014-05-18 15:26:35 -04:00