Louis Dionne
5b530824fe
[GCC] Workaround bugs and warnings
...
- Fix ambiguous overload of `concat` for Optionals
- Fix compilation error in std::vector unit test
- Fix false positives related to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66543
- Fix compilation error caused by variable template initialized by a lambda
2015-08-28 10:21:04 -04:00
Louis Dionne
8482d25b2e
[Sandbox] Use is_a instead of hand-rolled predicate
2015-08-28 10:17:52 -04:00
Louis Dionne
307f0d8c50
Add the lexicographical_compare algorithm
2015-08-26 13:40:11 -04:00
Louis Dionne
9fb555fc4a
[zip_shortest_with] Use a constexpr min_element instead of minimum(tuple(...))
2015-08-26 11:27:28 -04:00
Louis Dionne
f373b421f9
[Headers] Minimize the #includes in headers
...
- Allow specializing models_impl with a forward declaration only
- Modularize remaining concept headers
- Include <boost/hana.hpp> in unit tests to ease the transition
- Add the core/dispatch.hpp header to reduce the number of boilerplate includes
2015-08-26 11:27:28 -04:00
Louis Dionne
a62ab5cb29
[at_c] Use a function instead of a variable template, and optimize
...
Using a function instead of a variable template allows us to provide an
optimized version for hana::tuple more easily. It also fixes some issues
on GCC.
2015-08-26 11:27:27 -04:00
Louis Dionne
cb94d18440
[Travis] Clean up and simplify .travis.yml
...
- Remove useless allowed failure for Boost trunk, which does not work anyway
- Remove Clang 3.7, which is broken now. Will re-enable when Clang 3.7 is released
- Use JSON-style YAML lists to reduce vertical whitespace pollution
- Rename stdc++ to libstdc++
- Improve the locality of setting CXXFLAGS & related flags
- Specify the DEPS_DIR explicitly when exporting PATH
- Remove useless `if` guard over LLVM urls
- Use multiline strings to simplify if statements
- Remove now obsolete calls to `free`, `vmstat` & al
2015-08-25 18:36:15 -04:00
Louis Dionne
31c08e11b5
[Travis] Add testing on Boost 1.59.0
...
Also update Doxygen, CMake and libc++ versions
2015-08-25 18:35:10 -04:00
Louis Dionne
32627e2463
[Doc] Properly document the boost::hana::literals namespace
2015-08-25 17:51:39 -04:00
Louis Dionne
a02a62b652
[Sequence] Modularize some provided models
2015-08-24 21:37:11 -04:00
Louis Dionne
92edd1c98f
[Orderable] Remove Orderable::equal_impl
2015-08-24 21:35:34 -04:00
Louis Dionne
40a687bbcc
[Monad] Remove Monad::ap_impl
...
We still document the implementation of `ap` for Monads, but we do not
provide it.
2015-08-24 21:35:34 -04:00
Louis Dionne
13d1247acf
[Iterable] Automatically provide the model of Searchable for infinite Iterables
2015-08-24 18:51:31 -04:00
Louis Dionne
b8fecf3cad
[Applicative] Remove Applicative::transform_impl
...
The possibility to define transform(xs, f) = ap(lift(f), xs)
is still documented, but no implementation is provided by Hana.
2015-08-24 18:51:31 -04:00
Louis Dionne
6adefb627d
[std::array] Use operators instead of Hana's implementations for equal and less
2015-08-24 18:51:31 -04:00
Louis Dionne
f25212ae0c
Fix #includes of the wrong forward declaration header
2015-08-24 16:52:22 -04:00
Louis Dionne
99275d5cc3
Simplify specializations for Sequences, and use fast_and instead of hana::all
2015-08-24 16:52:22 -04:00
Louis Dionne
bf0670e814
[second] Remove useless #include
2015-08-24 13:47:07 -04:00
Louis Dionne
529f1cd459
[Either] Remove entirely
...
I had been unsatisfied with Either for a while now, thinking it might
be useless. I am now convinced that it is useless, and I hence remove
it from the library altogether.
2015-08-24 13:21:25 -04:00
Louis Dionne
b7d478fb39
[Concepts] Strip down some headers and reimplement models without _integral_constant
2015-08-24 13:21:25 -04:00
Louis Dionne
54171139bc
[Benchmarks, Doc] Update version of the Github.js lib and improve chart.html
2015-08-24 11:47:40 -04:00
Louis Dionne
e67b14bd96
[Doc] Use typewritter font where needed in the cheatsheet
2015-08-23 13:49:17 -04:00
Louis Dionne
55dfe66fe8
[cartesian_product] Benchmark on larger datasets
2015-08-23 13:49:17 -04:00
Louis Dionne
e2c4c1f36e
[Sequence] Add the remove_range algorithm
...
Closes #52
2015-08-23 13:49:16 -04:00
Louis Dionne
e42ce66d26
[Set,Map] Optimize several methods
...
Fixes #63
2015-08-23 12:00:59 -04:00
Louis Dionne
279e4bb4b8
[Benchmarks] Fix broken benchmarks for set theoretic operations
2015-08-23 09:33:27 -04:00
Louis Dionne
96f90f6956
[Set] Refactor the unit test of equal
2015-08-23 09:26:45 -04:00
Louis Dionne
d6a435dd24
[Example] Use std::plus
instead of hana::_
in Wandbox example
2015-08-23 09:03:00 -04:00
Louis Dionne
12c4deeece
[Set] Add missing set theoretic operations
...
Closes #119
2015-08-23 08:36:21 -04:00
Louis Dionne
2661a89dd4
[Example] Add a miscellaneous example of adding a Printable concept
...
This allows me to get rid of an old local branch. In the future, this
should be turned into a proper example of creating a concept in the
tutorial.
2015-08-23 07:52:15 -04:00
Louis Dionne
fd491ef9fb
[Map] Fix broken benchmark of is_disjoint
2015-08-23 07:52:15 -04:00
Louis Dionne
4191151935
[Set] Optimize equal for sets with different lengths
2015-08-23 07:52:15 -04:00
Louis Dionne
89c61aec67
Use ::value instead of {}() everywhere
2015-08-23 07:52:14 -04:00
Louis Dionne
c3fdac36e2
[concat] Remove unused implementation for non-Foldable Sequences
...
Since a42544d
, all Sequences are finite, and hence they are also Foldable
because finite Iterables must be Foldable. Hence, the implementation of
concat for non-Foldable Sequences is useless.
2015-08-22 11:28:33 +01:00
Louis Dionne
f9ff1d59c6
[Metafunction] Use @snippet instead of @include where it makes more sense
2015-08-20 18:17:24 +01:00
Louis Dionne
dcd930fa55
[Metafunction] Add rationale for the lack of Comparable model
2015-08-20 18:14:54 +01:00
Louis Dionne
9c9d938c7d
[Travis] Build examples and tests in two separate commands to avoid timeouts
2015-08-19 09:42:46 +01:00
Louis Dionne
cfb83c3394
[Doc] Fix broken example paths
2015-08-18 18:27:35 +01:00
Louis Dionne
08b3db1708
[Examples] Modularize and use qualified names
...
This patch modularizes the examples, makes them self-contained and
also uses qualified hana:: names.
Fixes #139
Fixes #126
2015-08-15 17:50:40 +02:00
Louis Dionne
02242e38b4
[Sequence] Remove unused implementation of equal
for infinite sequences
2015-08-15 10:13:01 +02:00
Louis Dionne
e5e1f761f9
[Searchable] Add the is_disjoint algorithm
...
Partially addresses #119
2015-08-12 22:00:32 +02:00
Louis Dionne
f6fbd028ba
[Struct] Move the BOOST_HANA_{ADAPT,DEFINE}_STRUCT macros to their own headers
2015-08-09 10:55:15 +02:00
Louis Dionne
c63950a25c
[drop_front] Add missing include
2015-08-09 10:09:54 +02:00
Louis Dionne
9771a2f0ed
[Doc] Re-document the Functional module.
2015-08-09 09:00:31 +02:00
Louis Dionne
d8f3b8775e
[Doc] Transition to benchmarks on Clang 3.6.2 from 3.6.1
2015-08-08 16:56:35 +02:00
Louis Dionne
d6c4befe10
[Doxygen] Remove spurious warnings. Common Doxy...
2015-08-08 16:56:05 +02:00
Louis Dionne
fd63f651d0
Add basic_tuple
, a minimal version of the tuple
2015-08-08 13:16:02 +02:00
Louis Dionne
0ccc0fb342
[Benchmarks] Depend on all the .cpp benchmark files instead of just the .erb.json
...
This way, the benchmarks will be re-generated when we modify one of the
.cpp files.
2015-08-08 13:16:02 +02:00
Louis Dionne
6b94de8ed3
[Either] Remove leading underscores forgotten in a5e5ee9
2015-08-08 11:37:59 +02:00
Louis Dionne
a5e5ee90bd
Remove most leading underscores from names in the hana:: namespace
...
Fixes #130
2015-08-08 11:24:17 +02:00