Commit Graph

1973 Commits

Author SHA1 Message Date
Louis Dionne
aa2edb08ce [CMake] Reduce the number of targets and modularize the code 2015-05-22 16:23:54 -04:00
Louis Dionne
2b0846a79a Fix ODR violations caused by multiple definitions in header
This commit fixes issue #75, but it does not fix the related issue #76.
It only makes sure that function objects are not defined multiple times,
but does not ensure the uniqueness of the addresses of the function
objects, which is much harder to get right.

Fixes #75
2015-05-21 16:38:00 -04:00
Louis Dionne
8f117eaba8 [Tuple] Fix bug in flatten with GCC and remove unused variable warnings 2015-05-20 16:56:48 -04:00
Louis Dionne
0660af6a8f [GCC] Initial port to GCC
- Fix ambiguous specialization in core/datatype
- [Config] Turn #errors into #warnings
- Qualify recursive calls to `apply` to make sure the right function is selected
- Remove usages of when_valid to workaround ambiguous specializations
- Use multiline comments to remove some GCC warnings with LaTeX's double backslash
- Specialize operators::of in the boost::hana::operators namespace
- Manually perform more conversions in constexpr-context
- Workaround the lack of support for constexpr-but-non-const member functions
- Disambiguate unqualified uses of size_t with hana::size_t and ::size_t
2015-05-20 16:56:34 -04:00
Louis Dionne
e1ed31f3aa [Constant] Test the equivalence between value_of and value 2015-05-20 16:46:58 -04:00
Louis Dionne
6e9a7a28c9 [Ext] Disable failing Fusion tests because of Fusion bugs 2015-05-20 13:33:42 -04:00
Louis Dionne
5019db00c4 [Detail] Make sure variadic::for_each is constexpr 2015-05-19 11:56:19 -04:00
Louis Dionne
90ddffe54d [Sequence] Add the cartesian_product method
Also, replace the old tuple_cartesian_product by a newer, slightly
more efficient but much simpler version.
2015-05-19 11:55:50 -04:00
Louis Dionne
2870863039 [README] Update the "related material" section 2015-05-16 15:58:17 -06:00
Louis Dionne
daea3549d5 [Struct] Add the keys method to Structs 2015-05-14 16:42:56 -06:00
Louis Dionne
4d3d71aae3 [Doc] Add a Boost logo 2015-05-13 14:10:03 -06:00
Louis Dionne
71dc2a8f40 [Example] Fix typo and modernize slightly 2015-05-09 15:38:59 -04:00
Louis Dionne
f32bcc2e45 [Doc] Document concrete models for each concept
Fixes #72
2015-05-07 13:46:10 -04:00
Louis Dionne
306ee54366 [Tuple] Fix bug in partition/filter on Clang 3.5 introduced by 595be8b 2015-05-07 11:25:05 -04:00
Louis Dionne
fc18a6cc21 [ext/fusion] Increase MAX_VECTOR_SIZE to fix failing tests 2015-05-06 18:59:05 -04:00
Louis Dionne
595be8b7b8 [Tuple] Greatly simplify filter and partition 2015-05-06 17:22:09 -04:00
Louis Dionne
e6f4220295 [Tuple] Implement a more efficient partition 2015-05-06 16:00:25 -04:00
Louis Dionne
2e483fb9fc [Tests] Fix bug in the sequence law checking
When BOOST_HANA_TEST_SEQUENCE_PART was defined, only the first section
of the tests would be run because we used #elif. Dumb me.
2015-05-06 15:47:36 -04:00
Louis Dionne
5ad2e3092d [Doc] Remove old Gnuplot-based benchmarks
[ci skip]
2015-05-05 19:14:56 -04:00
Louis Dionne
98a3c6658c [Benchmarks] Improve support for MPL11 and remove most homogeneous benchmarks 2015-05-05 18:46:00 -04:00
Louis Dionne
5181793455 [Tuple] More efficient implementation of filter, still not incredible
Also add benchmarks for filter
2015-05-05 14:05:55 -04:00
Louis Dionne
8446de09a0 [Sequence] Use pointers to avoid extra copies in partition 2015-05-04 14:01:45 -04:00
Louis Dionne
ad69eab92d [Sandbox] Rename subset to is_subset in SearchableSet (broken by 6ca6501) 2015-05-04 14:01:45 -04:00
Louis Dionne
3e0838b1e2 [Functional] Move reverse_partial from detail to functional 2015-05-04 14:01:45 -04:00
Louis Dionne
d54a5fa906 Move some TODOS to GitHub issues, and remove some outdated todos 2015-05-04 14:01:45 -04:00
Louis Dionne
6ca6501278 [Searchable] Refactor the interface
- Rename elem to contains
- Rename subset to is_subset, and make is_subset applicable in infix notation
- Add the at_key method
- operator[] is now bound to at_key instead of find
2015-05-04 12:33:51 -04:00
Louis Dionne
a9cf8bf9e7 [CMake] Exclude ext/boost/fusion/detail from the automatic header tests 2015-05-03 13:34:51 -04:00
Louis Dionne
334cbeb188 [Tuple] Allow brace-initializing tuple members
Fixes #57
2015-05-03 13:34:51 -04:00
Louis Dionne
dc56f6cebc [String] Add conversion to char const* and minor refactoring
Also
- remove useless value_type alias in String since it's not a Constant
- document why the interface is so minimal
2015-05-02 15:24:25 -04:00
Louis Dionne
65834220b7 [Type] Fix bug in the implementation of is_valid with nullary functions 2015-05-02 13:36:24 -04:00
Louis Dionne
b2145a2640 [IntegralConstant] Fix a bug with the .times function
Passing a normal function to .times would fail
2015-05-01 19:41:22 -04:00
Louis Dionne
fba9abc845 [README] Make sure the overview fits in the frame 2015-05-01 15:58:09 -04:00
Louis Dionne
3568186dac [Type] Add the is_valid utility.
Also refactor the overview in the README.
2015-05-01 15:54:22 -04:00
Louis Dionne
86e2e128a4 [Tuple] Use pointers in the implementation to avoid copying stuff around 2015-05-01 13:52:29 -04:00
Louis Dionne
94b24e009e [README] Add reference to Hana thesis 2015-04-30 16:15:13 -04:00
Louis Dionne
434fe06298 [Doc] Fix broken include of GitHub.js 2015-04-29 17:03:59 -04:00
Louis Dionne
a32ea99003 [Tutorial] Charts were pointing to the wrong datasets 2015-04-29 12:08:02 -04:00
Louis Dionne
deea418ad4 [Benchmarks] Add missing include_directories for Boost headers 2015-04-28 12:57:06 -04:00
Louis Dionne
7a4db87d3c [CMake] Set the proper xxx_FOUND variables in the CMake find modules. 2015-04-28 12:50:19 -04:00
Louis Dionne
e6d0fa9487 [CMake] Use Find modules to find optional external libraries 2015-04-28 10:46:44 -04:00
Louis Dionne
62804fe7e3 [Benchmarks] Add support for Meta in the benchmarks 2015-04-28 09:51:12 -04:00
Louis Dionne
4803e54b9d [Benchmarks] Make sure Fusion benchmarks use preprocessed headers 2015-04-28 09:51:03 -04:00
Louis Dionne
9a412f9c39 [MPL] Add a conversion from Foldables to MPL vectors
Also, properly split the unit tests for mpl::vector
2015-04-26 14:20:15 -04:00
Louis Dionne
6f9441fa7a [Tutorial] Fix formatting of header in the FAQ and a precision about charts 2015-04-26 14:19:43 -04:00
Louis Dionne
b452dc4de3 Remove most usages of detail::std::forward 2015-04-26 09:22:04 -04:00
Louis Dionne
a85be42014 [Doc] Get JSON data for the charts with the proper headers 2015-04-26 09:03:10 -04:00
Louis Dionne
69c02987ef [Tests] Automatically discover test subparts 2015-04-25 23:32:39 -04:00
Louis Dionne
f0ca4df2da [Benchmarks] Fix benchmarks broken by ca37fdf
Also check the benchmarks when we're on develop, to make sure they're
not broken.
2015-04-25 19:52:06 -04:00
Louis Dionne
ef7dcf6800 [Tuple] Fix bug in the new optimized find_if 2015-04-25 17:57:09 -04:00
Louis Dionne
ca37fdfa4c [Doc] Add a section on performance in the tutorial
Also:
- Introduce the .js charts we have in the reference
- Remove the ugly "Generated by Doxygen" footer
- Refactor the benchmarks
2015-04-25 16:31:56 -04:00