2
0
mirror of https://github.com/boostorg/hana.git synced 2026-01-24 18:02:19 +00:00
Commit Graph

56 Commits

Author SHA1 Message Date
Louis Dionne
ba3942a858 [Integral] Remove traces 2015-02-01 21:02:18 -05:00
Louis Dionne
915b55c3f7 Rename fmap to transform and more 2015-02-01 10:35:17 -05:00
Louis Dionne
4654c6786a Split instances for foreign types 2014-12-06 16:30:16 -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
049046478e Move ASSERT macros out of the details 2014-11-04 09:43:44 -05:00
Louis Dionne
e66473a0a9 Fix broken link to example in the doc. 2014-10-28 08:12:17 -04:00
Louis Dionne
b26406d649 Simplify the header hierarchy: too modular isn't good.
This essentially undo parts of 307d3d0. While it seemed a like good
idea to over-modularize type classes to reduce header dependencies, I
think it was a mistake. What 307d3d0 did was basically split each of
the components of a type class into a single header (typeclass/operators.hpp,
typeclass/mcd_1.hpp, typeclass/mcd_2.hpp, ...).

At first, it resolved many weird header dependency glitches. However, it
also made everything more complex; creating even easy type classes was
sometimes much longer than it should have been, and using type classes
was tricky because you had to know exactly what to include. It also went
against the idea of implicit type class instances being provided whenever
that's possible, which I think is a nice feature of the library. Being
dissatisfied with this, I opted for a simpler header organization with
a fwd/ directory that contains forward declaration headers, and everything
else in the same directory.

A possible objection to this change would be that you are now forced
to include sometimes more than what you strictly need when e.g. defining
an instance or using only some instance(s) of a data type. My answer to
this is that Hana is a really small library and the parsing is not
going to have a huge impact on overall compilation time. My bet is that
the time that will be saved by programmers with a simple header hierarchy
outweights the parsing time by far.
2014-10-25 09:47:05 -04:00
Louis Dionne
1104f76d48 Add perfect forwarding in some places in Tuple 2014-10-04 20:13:14 -04:00
Louis Dionne
ac9bd151fb Fixes issue #7 2014-09-16 11:27:51 -04:00
Louis Dionne
028e672822 Refactor examples and fix broken links 2014-08-30 17:18:26 -04:00
Louis Dionne
26af39f3d9 Flip the arguments of several methods.
Flipped:
- traverse
- fmap, adjust, fill, replace
- drop_while, drop_until
- take_while, take_until
2014-08-29 10:24:19 -04:00
Louis Dionne
3147d9b5d5 Refactor and fix broken examples. 2014-08-25 12:33:49 -04:00
Louis Dionne
7cc729bd05 List: add the slice method 2014-08-25 12:33:48 -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
f2de95a841 Use detail::injection instead of a std::tuple in the tests 2014-08-16 14:25:57 -04:00
Louis Dionne
82bc4a38da List: add span, group and group_by 2014-08-06 11:08:10 -04:00
Louis Dionne
da8135ccec Foldable: flip the arguments of some methods 2014-08-05 19:52:44 -04:00
Louis Dionne
2900faec86 List: flip the order of arguments of some methods 2014-08-05 19:52:44 -04:00
Louis Dionne
b4cfc58e72 Searchable: flip the order of the arguments of the methods 2014-08-05 16:46:56 -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
41d6b75bc2 Add the product Type class and make Pair a simple data type 2014-07-28 18:35:57 -04:00
Louis Dionne
aafd11ed82 Remove redundant examples introduced when refactoring the docs. 2014-07-27 16:57:38 -04:00
Louis Dionne
4dfdbba0c6 List: refactor documentation 2014-07-27 16:57:38 -04:00
Louis Dionne
1b4cfc9191 List: add the unzip method 2014-07-24 14:16:09 -04:00
Louis Dionne
a0133f546e Monad: replace >> by | 2014-07-24 09:43:16 -04:00
Louis Dionne
6d150cf5ee List: add scanr, scanl, scanr1 and scanl1 2014-07-20 14:25:10 -04:00
Louis Dionne
74092b4bc9 Add the Searchable type class.
Remove any, all, none, find, elem and the *_of variants from Foldable
and move them into Searchable.
2014-07-19 11:44:34 -04:00
Louis Dionne
7e8f109d7f Modularize List and add a minimal instance 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
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
7c6d9dd5bc Iterable: add the for_each method 2014-07-07 15:45:31 -04:00
Louis Dionne
5a2de2073e Reorganize and rename the adapted/ folder. 2014-07-07 12:42:20 -04:00
Louis Dionne
5efa23003f Rename join to flatten. 2014-07-01 22:04:56 -04:00
Louis Dionne
39c9b1b8e2 Add the bool.hpp header. 2014-07-01 16:45:12 -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
1a41064f04 Functor: add fill 2014-06-24 13:38:54 -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
585c0b8e76 Add the Applicative type class. 2014-06-21 18:16:56 -04:00
Louis Dionne
dfed9d39e7 Type: add lift and remove trait.hpp header 2014-06-21 14:09:08 -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
7e32f59837 core: Add conversion between data types 2014-06-18 20:23:53 -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
ee9681f7aa Minor ungrouped improvements and bug fixes. 2014-06-16 08:17:08 -04:00