2
0
mirror of https://github.com/boostorg/hana.git synced 2026-02-01 20:42:13 +00:00
Commit Graph

739 Commits

Author SHA1 Message Date
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
e77b55b1b4 [Iterable] Precise the laws 2015-04-10 18:00:49 -04:00
Louis Dionne
08e55a7bb6 Rework the relations between Foldable, Iterable and Searchable. 2015-04-10 17:46:14 -04:00
Louis Dionne
c434f134ba [Applicative] Implement automatic law checking 2015-04-10 13:17:51 -04:00
Louis Dionne
06ed355b0d [Traversable] Document the laws 2015-04-10 12:21:52 -04:00
Louis Dionne
b21fdc32de [Detail] Remove obsolete detail::wrap utility 2015-04-10 09:38:32 -04:00
Louis Dionne
e8412cfc6a [Detail] Regroup the STL concepts into detail/concepts.hpp 2015-04-10 09:34:17 -04:00
Louis Dionne
a12315c1a6 [Detail] Add constexpr algorithms and use them in the implementation 2015-04-10 08:33:18 -04:00
Louis Dionne
17169d99d3 [Constant] Document conversions, embeddings and related material. Fix TODOS 2015-04-09 11:18:03 -04:00
Louis Dionne
8026bd1e48 [Sequence] Require the natural isomorphism to be bijective in the laws 2015-04-09 09:38:10 -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
818148de6e [Core] Document undefined behavior with operators 2015-04-08 18:28:15 -04:00
Louis Dionne
b436ff0ee6 [Sequence] Settle on the semantics of the slice function
Fixes #36
2015-04-08 17:56:28 -04:00
Louis Dionne
bccfabdef7 Add interface-level assertions in bi-dispatched methods too. 2015-04-08 17:29:57 -04:00
Louis Dionne
d85b0f7b5b [String] Fix placement of BOOST_HANA_STRING in the documentation 2015-04-08 12:54:20 -04:00
Louis Dionne
f1cfe4ad78 [IntegralConstant] Optimize if_ and eval_if 2015-04-08 12:28:07 -04:00
Louis Dionne
3053736ddd [Tuple] Optimize the equal method 2015-04-08 11:30:00 -04:00
Louis Dionne
22b82faacc [Detail] Optimize the left and right variadic folds 2015-04-08 11:20:00 -04:00
Louis Dionne
bdfeb46d88 Remove outdated TODOS 2015-04-07 21:41:54 -04:00
Louis Dionne
546d0dea7b [Tutorial] Remove redundant explanation of BOOST_HANA_CONSTANT_CHECK 2015-04-07 20:20:17 -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
dbdd7e61e9 [Functor] Document natural transformations 2015-04-07 19:09:38 -04:00
Louis Dionne
bcefabf759 [Functional] Rewrite the documentation for demux 2015-04-07 18:42:43 -04:00
Louis Dionne
0246c59c6c [Sandbox] Remove the hana/sandbox folder and put everything in test/sandbox 2015-04-07 16:52:20 -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
84bc1a6a06 [Functional] Group the examples into a single file 2015-04-06 14:58:04 -04:00
Louis Dionne
3c2aa421b5 [Tuple] Provide efficient folds for tuple_t
Fixes #32
2015-04-06 14:28:09 -04:00
Louis Dionne
125fd45bfd [Functional] Add the overload_linearly utility 2015-04-06 14:11:42 -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
ccb2e05343 [Tuple] Move some issues to GitHub 2015-04-01 10:56:15 -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
fe36fcd778 [Foldable] Workaround Clang 3.5/3.6 ICE in the monadic folds 2015-03-30 21:17:17 -04:00
Louis Dionne
a215f0a1b1 [Monad] Add tests for the bind method for Sequences 2015-03-30 18:30:59 -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
540f665e51 Use static_cast<T&&> instead of forward<T> to reduce compile-times
It might seem overkill to do this, but I measured:
static_cast:
    make compile.test.tuple  92.58s user 4.85s system 99% cpu 1:37.93 total
    make compile.test.tuple  91.89s user 4.78s system 99% cpu 1:37.07 total
    make compile.test.tuple  92.51s user 4.77s system 99% cpu 1:37.73 total
    make compile.test.tuple  95.91s user 5.16s system 99% cpu 1:41.60 total
    avg: 98.1125s

forward:
    make compile.test.tuple  108.16s user 5.50s system 99% cpu 1:54.36 total
    make compile.test.tuple  110.00s user 5.55s system 99% cpu 1:56.17 total
    make compile.test.tuple  108.41s user 5.47s system 99% cpu 1:54.46 total
    make compile.test.tuple  107.31s user 5.54s system 99% cpu 1:53.46 total
    avg: 113.985s

This shows an improvement of the average by 15.8725s, which
represents about 13.9%.
2015-03-29 11:14:24 -04:00
Louis Dionne
a98d32cae1 [Maybe] *just(x) is now equivalent to from_just 2015-03-29 10:39:04 -04:00
Louis Dionne
b62460d22f [std::tuple] Workaround libc++ bug 22806 2015-03-29 10:07:13 -04:00
Louis Dionne
1f9fcb7aca [boost::tuple] Fix dangling reference bug 2015-03-29 01:31:31 -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
637c5270ab [Functional] Add hana::capture 2015-03-28 22:22:13 -04:00
Louis Dionne
961fd14632 [Assert] Workaround Clang bug caused by closure in BOOST_HANA_CHECK 2015-03-28 22:22:12 -04:00
Louis Dionne
4390aa98df [Maybe] Fix bug in sfinae with non-pod arguments 2015-03-28 20:44:22 -04:00
Louis Dionne
d49db6d698 Fix dangling reference bugs in several adapters 2015-03-26 09:38:29 -04:00
Louis Dionne
beb72c224f Remove some more usage of lambdas 2015-03-26 02:08:44 -04:00