Commit Graph

1973 Commits

Author SHA1 Message Date
Louis Dionne
9fc85989f7 [bugfix] Fix incorrect result for first and second in nested pair cases 2017-04-09 23:00:07 -07:00
Louis Dionne
ae2e9664ae [bugfix] Fix incorrect result for first and second in nested pair cases 2017-04-08 14:05:57 -07:00
Louis Dionne
7f87e7ad53 [tuple] Fix misleading comment
[ci skip]
2017-04-08 10:48:58 -07:00
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
8b39270d61 [CMake] Properly install HanaConfig.cmake in lib/cmake/hana
Thanks @pfultz2 for teaching me how to use CMake properly :-)
2017-03-30 21:15:53 -07:00
Louis Dionne
ece10d9e9b [CMake] Properly propagate dependencies on Boost headers 2017-03-30 10:25:03 -07:00
Louis Dionne
5901d52cd2 Rename struct_macros.erb.hpp to struct_macros.hpp.erb 2017-03-30 10:22:08 -07:00
Louis Dionne
d0184c7471 [CMake] Remove the FindHana.cmake file, which is not required anymore 2017-03-30 10:01:58 -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
d020188182 [Travis] Fix installation of pcre 2017-03-16 09:27:43 -07:00
Louis Dionne
f36385d59f [Travis] Fix installation of pcre 2017-03-16 09:26:32 -07:00
Louis Dionne
93590abfcb [example] Add dimensional analysis example from Meeting C++ keynote 2017-03-07 19:09:43 -08:00
Louis Dionne
35a570dfab [Travis] Cleanups related to Boost installation 2017-03-05 20:02: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
17fe66751f [CMake] Remove useless check on Clang for Windows 2017-02-28 09:22:20 -10:00
Louis Dionne
cae3fb3fb3 Merging develop into master for Hana version 1.1.0 2017-02-25 13:47:10 -08:00
Louis Dionne
7f2a329800 Bump version to 1.1.0 2017-02-25 13:44:37 -08:00
Louis Dionne
bd8bdefa3a [map] Add restricted assignment operators 2017-02-21 23:32:51 -08:00
Louis Dionne
02afb37830 [experimental] Move experimental/ to example/misc, and do some cleanup 2017-02-18 12:43:30 -08:00
Louis Dionne
90dbbd4379 [doc] Move related material from README to tutorial 2017-02-12 00:53:15 -08:00
Louis Dionne
ce92da0324 [README] Add a note about updating the Homebrew formula when bumping version 2017-02-12 00:07:43 -08:00
Louis Dionne
71989e7077 [doc] Fix broken link to GMane archives 2017-02-12 00:00:29 -08:00
Louis Dionne
cea576686b [doc] Reorganize the "Installation" section and document Homebrew
Resolves #263
2017-02-11 23:46:18 -08:00
Louis Dionne
6eed9076a0 Improve support for EBO in containers
Resolves #313
2017-02-11 23:00:42 -08:00
Louis Dionne
55bb4b9877 [map] Fix overly loose constructors 2017-02-11 15:40:42 -08:00
Louis Dionne
c3789c70cb [basic_tuple] Use ebo instead of elt to implement EBO in basic_tuple 2017-02-11 15:40:42 -08:00
Louis Dionne
711e6de58a [basic_tuple] Use at_c instead of get_impl to access basic_tuples
This commit decouples the underlying representation of basic_tuple from many
utilities and containers in Hana. This will lead to better support for EBO and
cleaner code, however it might result in a slight compile-time pessimization
since there's one more function instantiation than using `get_impl` directly,
and we're adding 3 overloads to `at_c`.
2017-02-11 15:40:42 -08:00
Louis Dionne
279dbaa9b5 [pair] Ensure that a pair of empty objects is empty too
Also, fix some overly loose constructors
2017-02-11 15:40:42 -08:00
Louis Dionne
40ca5afd7d Add a building block for EBO in containers 2017-02-11 10:26:56 -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
669451d478 [Travis] Add a job testing on Boost 1.63.0 2017-02-08 00:54:02 -08:00
Louis Dionne
6b5c2ef23d [doc] Fix the documentation target for Boost
Also make sure that the documentation target works on Travis.
2017-02-07 21:27:28 -08:00
Louis Dionne
268004e953 Remove some usages of variable templates 2017-02-07 21:27:28 -08:00
Louis Dionne
9f18782648 [CMake] Remove nonexistent headers in excluded public header list 2017-02-07 19:30:10 -08:00
Louis Dionne
323b657bbe [type] Improve rationale for the representation of hana::type
In response to #319
2017-02-05 13:41:16 -08:00
Louis Dionne
a39d2fb90c [any_of] Fix a bug where we called the predicate once more than necessary
Also, add automatic unit tests for any_of, all_of and none_of. This commit
also makes it easier to add new automatic unit tests by documenting a small
shell script.

Commit triggered by http://stackoverflow.com/q/42012512/627587
2017-02-03 13:58:08 -08:00
Louis Dionne
620a2f681d [set] Fix broken default constructibility unit test
For some reason, this test failed in Travis when I added it, but the Travis
build still passed so I never noticed it.
2017-01-29 13:06:43 -08:00
Louis Dionne
68e5998b3c [map] Provide a custom implementation of hana::contains
This should be faster than using the default implementation, which uses `any_of`.
2017-01-29 11:13:10 -08:00
Louis Dionne
c800311cae [set] Add and document a default constructor
Prompted by a StackOverflow question [1], and also the fact that hana::map
supports it.

[1]: http://stackoverflow.com/q/41818061/627587
2017-01-24 08:37:04 -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
e6d5d59ace Bump version number to 1.0.3 to match next expected release 2017-01-07 14:05:51 -08:00
Louis Dionne
72a081f9d6 [Travis] Improve commit message when updating documentation
ci skip
2017-01-07 13:45:00 -08:00
Louis Dionne
92171630a6 [cmake] Reformulate documentation of TestHeaders.cmake
ci skip
2016-12-18 11:41:59 -08:00
Louis Dionne
46e9e0ab1f [tuple] Fix ambiguous specialization on GCC 2016-12-10 19:19:29 -08:00
Louis Dionne
9d1890ec49 [tuple] Add better SFINAE to guard the variadic constructor
This avoids instantiating rogue constructors in some corner cases.
2016-12-10 16:59:20 -08:00