Commit Graph

19 Commits

Author SHA1 Message Date
Louis Dionne
1aa52a9726 [string] Add a conversion from a Constant holding a char const*
Closes #347
2018-02-21 00:23:17 -08:00
Louis Dionne
9895803ede Bump copyright year to 2017 2017-01-07 14:14:18 -08:00
Louis Dionne
1eebdb62cb [string] Document the default constructor 2016-12-03 20:53:04 -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
90ae512da6 [string] Add a c_str() method 2016-11-08 06:57:58 -08:00
Louis Dionne
3a2ad0b2b5 [Hashable] Improve documentation and tests 2016-02-16 15:24:23 -05:00
Louis Dionne
23c3edc93b [NFC] Un-Doxygenize comments in non-header files 2016-02-04 11:07:41 -05:00
Louis Dionne
d60646237d [core] Rename core/convert.hpp to core/to.hpp 2016-01-10 18:32:57 -05:00
Louis Dionne
5e62da18a1 [string] Modularize the unit tests
Also workaround a missing #include in string.hpp
2016-01-04 10:34:18 -05:00
Louis Dionne
52afb17a43 [Tests] Split unit tests in a much more clever way using CMake 2015-03-18 19:28:21 -04:00
Louis Dionne
463040d318 [Searchable] Rename find to find_if and lookup to find 2015-03-15 00:18:31 -04:00
Louis Dionne
47dc4c7180 [String] Split the unit tests for Orderable and Comparable 2015-03-07 22:41:39 -05:00
Louis Dionne
479f5ef991 [Tests] Split more unit tests 2015-03-05 10:34:15 -05:00
Louis Dionne
b229a60e25 Refactor the automatic law checking to make it more modular 2015-03-05 09:35:06 -05:00
Louis Dionne
647ad436b0 Reorganize the unit tests and increase the overall coverage. 2014-11-04 08:54:58 -05: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
806b941603 Instantiate Searchable and Iterable with String. 2014-10-21 23:53:28 -04:00
Louis Dionne
653d083eb0 Instantiate Foldable and Orderable with String. 2014-10-17 10:23:31 -04:00
Louis Dionne
c184a742fb Add compile-time strings 2014-09-30 10:23:45 -04:00