87 Commits

Author SHA1 Message Date
Zach Laine
523d723d76 Add missing operator!= for container_interface; fix by-value parameters in
other comparison functions.
2019-08-18 19:26:36 -05:00
Zach Laine
497ee7dd74 Add copious commentary explaining that -- and why --
container_interface::insert(pos, n, x) is not constrained.  I tried.  I really
did.
2019-08-17 19:19:44 -05:00
Zach Laine
a65257471b Add container_interface test using a std::array-like type. 2019-08-17 15:55:52 -05:00
Zach Laine
e2c29ca9a8 Add TODOs. 2019-08-16 20:17:02 -05:00
Zach Laine
27cd6092fc Add numerous illformedness-verifying static_asserts on operations that one of the interface templates should not provide for a given instantiation. 2019-08-16 20:17:02 -05:00
Zach Laine
8e0fa30eab Extend the container_interface docs. 2019-08-16 20:17:02 -05:00
Zach Laine
78437b8b99 Fix more Clang build errors. 2019-08-16 01:27:27 -05:00
Zach Laine
02e26eecb4 Fix Clang build. 2019-08-15 22:32:19 -05:00
Zach Laine
c4503988d8 Add test for static_vector/container_interface. 2019-08-15 22:09:02 -05:00
Zach Laine
49015e50b5 Add test for entities in namespace detail. 2019-08-15 22:09:02 -05:00
Zach Laine
f28c890d82 Add const convertibility from mutable to reverse_iterator; update tests. 2019-08-15 22:09:02 -05:00
Zach Laine
b561f3e875 Fix Clang build. 2019-08-14 19:59:02 -05:00
Zach Laine
c6e79cf3a7 Add test for reverse_iterator. 2019-08-14 19:51:07 -05:00
Zach Laine
cd3caec37d Add more robust view_interface tests. 2019-08-14 19:51:07 -05:00
Zach Laine
9fa85b8d83 Remove constexpr cruft from a couple of tests to fix Clang builds. 2019-08-13 23:10:57 -05:00
Zach Laine
03da6dcba9 Add more overloads to iterator_interface that use Derived's underlying
iterator, if any.
2019-08-13 21:28:09 -05:00
Zach Laine
97ca350172 Rename the library stl_interfaces; iterator_facade.hpp ->
iterator_interface.hpp.
2019-08-12 18:09:37 -05:00
Zach Laine
a259a08cea prev() and next() -> operator++() and operator()-- in user operations 2019-08-12 18:09:31 -05:00
Zach Laine
52fbe123de Add postincrement testing to input and output tests. 2019-08-12 18:09:02 -05:00
Zach Laine
8af27e0ce4 Reimplement all of iterator_facade, rename it iterator_interface. 2019-08-12 00:35:20 -05:00
Zach Laine
2588d2acad Build cruft removal. 2019-08-10 20:18:59 -05:00
Zach Laine
c0e571d034 Add static_assert macros, use them in the tests and examples, and add docs for
them.
2019-08-10 18:34:21 -05:00
Zach Laine
b7fea24984 Finish the reverse_iterator example. 2019-08-10 17:20:19 -05:00
Zach Laine
ac033389b9 Turns out default constructibility is required for all iterator concepts. 2019-08-10 10:30:10 -05:00
Zach Laine
a415c05877 Sketch in most of the doc examples. 2019-08-10 10:30:10 -05:00
Zach Laine
c6741aa3fc Fix GCC 8 compilation errors. 2019-08-08 21:39:46 -05:00
Zach Laine
cf10db8d17 Add Boost docs outline. 2019-08-08 17:21:42 -05:00
Zach Laine
41d3c619e8 Add copyright headers to sources. 2019-08-04 15:55:41 -05:00
Zach Laine
3daefa1613 Add operator->() members to the remaining facade specializations (except the
one for output iterator).  Add a zip_iterator to the random_access test.
2019-08-04 11:24:54 -05:00
Zach Laine
bc0bd3704f Add detail::arrow, its use in the input iterator facade, and the
proxy_iterator_facade template alias.
2019-08-04 10:08:30 -05:00
Zach Laine
abc0ed7013 Add facade specialization for output iterators, with test. 2019-08-04 09:00:07 -05:00
Zach Laine
6576be234c Add a random access iterator test. 2019-08-03 19:35:38 -05:00
Zach Laine
d37a84afd3 Add a bidirectional iterator test. 2019-08-03 19:35:38 -05:00
Zach Laine
7685546ddf Add a forward iterator test. 2019-08-03 19:35:38 -05:00
Zach Laine
442f122e79 - In hidden friend function params, iterator_facade const & -> Derived.
- Add noexcept specs to all hidden friends.
- Extend input iterator tests a bit.
2019-08-03 19:35:38 -05:00
Zach Laine
0f792a9c4d Implement input_iterator facade specialization. 2019-08-03 19:35:38 -05:00
Zach Laine
4ef8e73495 Add first test, to be fleshed out alongside iterator_facade.hpp. 2019-07-08 09:16:19 -05:00