Jason Rice
6d086796a3
[index_if] New index_if function
...
- Adds index_if
- Rewrites detail::index_if to use recursive alias stuff
optimized for tuple and basic_tuple
- find_if now uses index_if for Iterables
- at_key now uses index_if for Sequence
- Removes duplicate code and unnecessary special case implementations
- detail::advance_until
- at_key::advance_until
- tuple_tag implementation of find_if
- Uses Foldable instead of Sequence for cases where length is known.
(find_if had a specialization when Iterable and not Sequence)
- Adds test.*.auto.index_if for Sequences
- Adds test support/counter for testing infinite iterables
2017-04-07 16:19:52 -07:00
Louis Dionne
2139f76798
[example] Remove non-ascii character
2017-03-29 22:48:57 -07:00
Louis Dionne
a0a8ecc061
[CMake] Do not include Boost headers globally
2017-03-29 22:08:04 -07:00
Louis Dionne
d53ef246fd
Generate a HanaConfig file that exports the Hana target
...
This supersedes the `FindHana.cmake` module that we used to provide, which was
buggy and was not the proper way of giving an easy integration for CMake users.
Fixes #328
2017-03-29 21:41:07 -07:00
Louis Dionne
93590abfcb
[example] Add dimensional analysis example from Meeting C++ keynote
2017-03-07 19:09:43 -08:00
Louis Dionne
aa6c6982a8
[example] Fix typo
...
[ci skip]
2017-03-04 10:00:09 -10:00
Louis Dionne
ebbe97e8c0
[example] Improve example for zip_with
...
Thanks to @brunocodutra for the example.
2017-03-04 07:53:53 -10:00
Louis Dionne
02afb37830
[experimental] Move experimental/ to example/misc, and do some cleanup
2017-02-18 12:43:30 -08:00
Louis Dionne
50336d4aeb
[CMake] Use per-target properties instead of populating global flags
2017-02-10 08:07:44 -08:00
Louis Dionne
478b5cc690
[CMake] Handle Valgrind through CTest, without a custom boost_hana_add_test
2017-02-08 07:57:13 -08:00
Louis Dionne
268004e953
Remove some usages of variable templates
2017-02-07 21:27:28 -08:00
Louis Dionne
e6c45f62da
Bump more copyrights to 2017
2017-01-08 11:34:49 -08:00
Louis Dionne
9895803ede
Bump copyright year to 2017
2017-01-07 14:14:18 -08:00
Louis Dionne
7a3e0480d4
[string] Add a model of the Monoid concept
...
Fixes #117
2016-11-17 13:19:58 +01:00
Louis Dionne
9fe9d2f0d7
Make sure concepts inherit from an integral_constant
...
Fixes #269
2016-11-17 08:41:27 +01:00
Louis Dionne
e3e8736aab
[map] Allow declaring maps using map<Pairs...>, and provide a variadic constructor
2016-11-14 18:56:22 -08:00
Louis Dionne
90ae512da6
[string] Add a c_str() method
2016-11-08 06:57:58 -08:00
Louis Dionne
8f8794fd28
[CMake] Add the hana interface library
...
Also, simplify the example/test setup by removing the tests.quick target
2016-10-10 20:52:54 -07:00
Louis Dionne
96d0fe11a7
Remove some usages of variable templates
2016-09-28 10:35:58 -07:00
Marcel Raad
1b005c5679
Unblock testing with MSVC
...
MSVC doesn't like the #warning directive and issues a fatal error.
It also sets _MSVC_LANG to 201402 for C++14 instead of __cplusplus,
but that's the minimum value anyway.
It also doesn't like using {} instead of ::value for some type traits
sometimes and issues an error about a missing default constructor.
[ldionne: add full break after first line in commit message]
2016-08-30 19:15:27 -07:00
Louis Dionne
edbbffeea4
[type] Add hana::typeid_ and deprecate hana::decltype_
...
Closes #290
2016-07-17 17:28:57 -07:00
Louis Dionne
388b690354
Remove the wandbox.py script to upload an example to Wandbox
...
We will not need this script anymore, since we can use the version of Hana
released with Boost on Wandbox.
2016-06-12 12:07:41 -07:00
Louis Dionne
345ac93e79
Revert "[GCC] Workaround GCC bug 67364, which appears to be still open"
...
This reverts commit dd92656da8 , which
is not required anymore because the GCC bug was fixed.
2016-03-06 09:11:07 -05:00
Louis Dionne
dd92656da8
[GCC] Workaround GCC bug 67364, which appears to be still open
2016-03-05 12:34:24 -05:00
Louis Dionne
eaa4cd7f8e
[map] Reimplement hana::map using a hash table
2016-02-16 15:50:41 -05:00
Louis Dionne
3a2ad0b2b5
[Hashable] Improve documentation and tests
2016-02-16 15:24:23 -05:00
Louis Dionne
b1696fe0cc
[Metafunction] Do not automatically call decltype_ on metafunction arguments
2016-02-15 10:07:08 -05:00
Louis Dionne
23c3edc93b
[NFC] Un-Doxygenize comments in non-header files
2016-02-04 11:07:41 -05:00
Louis Dionne
8d1e56f513
[experimental] Clean up some files that belong better elsewhere or nowhere at all
2016-01-30 14:14:53 -05:00
Louis Dionne
e3f2ad9cef
[doc] Add a section on compile-time branching in the tutorial
...
Closes #147
2016-01-22 10:03:39 -05:00
Louis Dionne
f7a2ac5f45
[examples] Use to_tuple instead of to<tuple_tag>
2016-01-18 17:31:59 -05:00
Louis Dionne
08a63d6cbf
Fix more Boost-inspect errors
2016-01-15 16:50:07 -05:00
Louis Dionne
dc90dc52d0
Fix some Boost-inspect errors
...
- Non-ASCII characters
- Files not ending with a newline
- Missing copyright notices
2016-01-13 12:38:09 -05:00
Louis Dionne
81ddcfafaf
Rename take to take_front
...
This improves consistency:
drop_front/drop_back
take_front/take_back
2016-01-12 10:10:03 -05:00
Louis Dionne
131c56c32a
Add the take_back algorithm
2016-01-12 10:00:11 -05:00
Louis Dionne
ca61f12562
Minor refactoring of typos and missing includes
2016-01-12 09:34:36 -05:00
Louis Dionne
d60646237d
[core] Rename core/convert.hpp to core/to.hpp
2016-01-10 18:32:57 -05:00
Louis Dionne
1026267959
[CMake] Modularize the checks for external packages
2016-01-04 14:58:11 -05:00
Louis Dionne
c41a5cb6be
Update copyright notices for 2016
2016-01-01 14:54:06 -05:00
Louis Dionne
850dbf7ad7
Provide an experimental print function
...
Closes #200
Closes #219
2015-12-09 14:47:13 -05:00
Louis Dionne
129c80b0ce
[Tutorial] Document when-based tag-dispatching
...
Closes #173
2015-11-29 11:20:01 -05:00
Louis Dionne
0e4b8abe0e
[Windows] Disable failing tests due to EBO bug, and fix broken example
...
The example/tap.cpp bug was actually interesting, so I'll document it
here. We were using `tap` with a function that performed side effects.
However, we relied on the side effects being done in a particular order
for the example to pass. This is a violation of what the documentation
says we're allowed to.
On Windows, the call convention is such that arguments are evaluated
from right to left, instead of left to right like on OS X and Linux.
Since `chain` uses `transform` and `transform` expands `f(x)...` inside
a function call, our function with side effects was being called in
reverse order as what we would have expected!
Morale: Listen to the documentation, or perish.
2015-11-18 20:18:34 -05:00
Louis Dionne
aa9ff56984
[Example] Fix compilation errors on Boost.Fusion trunk
2015-11-16 07:48:01 -05:00
Louis Dionne
a41f63693b
[Tutorial] Complete the section on external adapters
2015-11-15 15:16:31 -05:00
Louis Dionne
2a0bf6b34f
[std::ratio] Add documentation
2015-11-15 15:16:31 -05:00
Louis Dionne
b906aeb277
[std::pair] Add documentation
2015-11-15 15:16:31 -05:00
Louis Dionne
d54fb5fa32
[boost::tuple] Add documentation
2015-11-15 15:16:31 -05:00
Louis Dionne
735fc4e628
[std::tuple] Add documentation
2015-11-15 15:16:31 -05:00
Louis Dionne
371c07e62d
[std::integral_constant] Add documentation
2015-11-15 15:16:31 -05:00
Louis Dionne
11a7300651
[Fusion] Document adapters
2015-11-15 15:16:31 -05:00