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 Foldable
s 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