2
0
mirror of https://github.com/boostorg/hana.git synced 2026-01-24 05:52:14 +00:00
Commit Graph

533 Commits

Author SHA1 Message Date
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