Louis Dionne
40a7456bb1
Remove outdated TODOS.
2014-10-27 17:15:59 -04:00
Louis Dionne
503d372459
Lower the requirements on the arguments to drop and at.
2014-10-27 17:08:00 -04:00
Louis Dionne
fcca565695
Remove outdated TODO
2014-10-27 16:58:13 -04:00
Louis Dionne
80ab04ede0
Simplify datatype and enabled_operators implementations.
2014-10-27 16:43:49 -04:00
Louis Dionne
eddece8d00
Use the nested hana struct to define enabled operators.
2014-10-27 16:31:03 -04:00
Louis Dionne
cc8455dd65
Use the nested hana struct to instantiate unary type classes.
2014-10-27 16:14:02 -04:00
Louis Dionne
220d92ed82
Use a nested hana struct to customize stuff inside user defined objects.
2014-10-27 15:24:14 -04:00
Louis Dionne
a9743f3dde
Add the Ring::power method.
2014-10-27 14:59:20 -04:00
Louis Dionne
087f48010d
Fix typo in test::CNumeric.
2014-10-27 14:59:20 -04:00
Louis Dionne
da792149c1
Improve CMake output when generating data sets
2014-10-26 18:36:44 -04:00
Louis Dionne
847c53c6d3
Fix dangling reference in Foreign::{succ,pred}_impl.
2014-10-25 21:13:28 -04:00
Louis Dionne
fe1f1c65a7
Use functional utilities instead of handwritten lambdas when easy to do so.
2014-10-25 20:45:21 -04:00
Louis Dionne
1873a828c5
Simplify id's implementation.
2014-10-25 19:59:53 -04:00
Louis Dionne
133775bf20
Perform eta reduction in Tuple at_impl.
2014-10-25 14:34:32 -04:00
Louis Dionne
c2541c3713
Add detail::closure based on multiple-inheritance
2014-10-25 14:34:31 -04:00
Louis Dionne
187f396711
Add std::declval and std::add_rvalue_reference to detail::
2014-10-25 12:56:30 -04:00
Louis Dionne
cf9ea4995e
Ensure plots are redrawn when the datasets are updated.
...
Right now, the plots are also redrawn when they are not needed. Since
this is basically free, it should not be a problem.
2014-10-25 09:47:06 -04:00
Louis Dionne
905cdf7674
Benchmark different closure implementations.
2014-10-25 09:47:06 -04:00
Louis Dionne
8adb3353f6
Use functional utilities instead of hand rolled equivalents in some places.
2014-10-25 09:47:06 -04:00
Louis Dionne
b26406d649
Simplify the header hierarchy: too modular isn't good.
...
This essentially undo parts of 307d3d0
. While it seemed a like good
idea to over-modularize type classes to reduce header dependencies, I
think it was a mistake. What 307d3d0
did was basically split each of
the components of a type class into a single header (typeclass/operators.hpp,
typeclass/mcd_1.hpp, typeclass/mcd_2.hpp, ...).
At first, it resolved many weird header dependency glitches. However, it
also made everything more complex; creating even easy type classes was
sometimes much longer than it should have been, and using type classes
was tricky because you had to know exactly what to include. It also went
against the idea of implicit type class instances being provided whenever
that's possible, which I think is a nice feature of the library. Being
dissatisfied with this, I opted for a simpler header organization with
a fwd/ directory that contains forward declaration headers, and everything
else in the same directory.
A possible objection to this change would be that you are now forced
to include sometimes more than what you strictly need when e.g. defining
an instance or using only some instance(s) of a data type. My answer to
this is that Hana is a really small library and the parsing is not
going to have a huge impact on overall compilation time. My bet is that
the time that will be saved by programmers with a simple header hierarchy
outweights the parsing time by far.
2014-10-25 09:47:05 -04:00
Louis Dionne
a74bb80490
Type: clean up and remove misplaced functionality
...
The ability to construct objects of a type T by calling the type<T>
object was removed; make<T> should be used instead.
2014-10-22 12:27:33 -04:00
Louis Dionne
e6c16a1394
Add more laws to Functor.
2014-10-22 10:43:16 -04:00
Louis Dionne
806b941603
Instantiate Searchable and Iterable with String.
2014-10-21 23:53:28 -04:00
Louis Dionne
2e94c2cd84
Fix a couple of bugs in the build system:
...
- Don't add benchmarks when the Benchmarks module is not available
- Properly handle tests and examples depending on Boost
2014-10-21 20:11:45 -04:00
Louis Dionne
e70e06c831
Add support for std::ratio.
2014-10-20 11:50:43 -04:00
Louis Dionne
b8a9cb1a3e
Register benchmark for the subset method.
2014-10-19 17:46:11 -04:00
Louis Dionne
3fc1426f15
README: update the compiler requirements
2014-10-19 17:27:38 -04:00
Louis Dionne
93c0d4a8eb
Fix broken links to benchmark plots in the documentation.
2014-10-19 17:23:30 -04:00
Louis Dionne
7b18a4598c
Add perfect forwarding in Map.
2014-10-17 18:54:23 -04:00
Louis Dionne
ac528b81ba
Add the insert function to Set.
2014-10-17 18:29:50 -04:00
Louis Dionne
b09096c11f
Split ext/ integral constants into different files.
2014-10-17 16:31:16 -04:00
Louis Dionne
653d083eb0
Instantiate Foldable and Orderable with String.
2014-10-17 10:23:31 -04:00
Louis Dionne
f4276a5dcf
Remove outdated operator_ experiment.
2014-10-17 09:31:01 -04:00
Louis Dionne
716ff897cc
Add the Enumerable type class.
2014-10-16 20:52:29 -04:00
Louis Dionne
d496ec6bbc
Change the syntax of demux
.
2014-10-16 19:32:09 -04:00
Louis Dionne
367ba66227
Undo 8076305
(constexpr-initialized lambdas).
...
This turned out to be pretty much useless because the call operator
still couldn't be made constexpr. Since that added a bit of complexity
without any gain, this is removed.
2014-10-16 17:13:09 -04:00
Louis Dionne
f0d9e9b9bb
Add the intersperse method to List.
2014-10-16 16:56:39 -04:00
Louis Dionne
1280806839
Provide an instance of Foldable for Products.
2014-10-16 08:43:08 -04:00
Louis Dionne
7b57e7b474
Low hanging optimizations in Tuple.
2014-10-16 08:18:25 -04:00
Louis Dionne
30a4b02a68
Make sure the non-template operators for placeholders are inlined
2014-10-14 20:16:48 -04:00
Louis Dionne
177a7f11f3
Add an overload utility to the sandbox.
2014-10-14 17:38:56 -04:00
Louis Dionne
d74eb9e08f
Add runtime and memory usage benchmarks.
2014-10-14 10:11:50 -04:00
Louis Dionne
4335c4915c
Move list/free/convert.hpp to list/convert.hpp
2014-10-11 16:04:12 -04:00
Louis Dionne
002320cdf6
Add variadic take and variadic split_at.
2014-10-11 15:58:04 -04:00
Louis Dionne
88579de954
Allow folding move-only rvalue Records by constraining accessors.
2014-10-11 14:26:39 -04:00
Louis Dionne
9bc46dd205
Add more perfect forwarding.
2014-10-11 13:20:30 -04:00
Louis Dionne
5c0755b496
Fix bugs where we default initialized lambdas.
2014-10-08 20:46:10 -04:00
Louis Dionne
4ff5485bd3
Remove workarounds for now-fixed libc++ #19616
2014-10-08 19:31:28 -04:00
Louis Dionne
d08c5c2f36
Fix broken include guard in set/convert.hpp
2014-10-07 20:20:19 -04:00
Louis Dionne
c6e79c1075
Add missing decltype(auto) to some foreign methods.
2014-10-07 19:37:57 -04:00