289 Commits

Author SHA1 Message Date
Zach Laine
53d6f7a104 Replace the nested-type hack for constraining free functions to
interface-derived types in v1.
2019-08-18 13:00:55 -05:00
Zach Laine
fe1edd3cd5 Initial sketch of some C++20 stuff in namespace v2. 2019-08-18 01:42:32 -05:00
Zach Laine
7d1648bdfc Add inline v1 namespace to all headers. 2019-08-17 19:41:43 -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
a4bd9f4078 Doc tweak. 2019-08-17 12:23:50 -05:00
Zach Laine
df8b9b30d6 Extend rationale. Misc. doc tweaks. 2019-08-17 12:16:50 -05:00
Zach Laine
8492a519c2 Emphasize emplace() semantics, and explicitly note in each tutorial that the
user can intentionally hide *_interface-provided operations.
2019-08-17 11:27:45 -05:00
Zach Laine
3343664650 Rewrite the intro slightly to emphasize more than just the iterator parts of
the library.
2019-08-17 10:27:56 -05:00
Zach Laine
b1b1727004 README typo. 2019-08-16 23:26:27 -05:00
Zach Laine
96941b1992 Update README. 2019-08-17 04:12:53 -05:00
Zach Laine
cd125f11e3 Fix MSVC build. 2019-08-17 04:01:09 -05:00
Zach Laine
37d421f20e Doc copy editing. 2019-08-16 22:12:03 -05:00
Zach Laine
df79a048b3 difference_type -> size_type in container_interface::operator[]. 2019-08-16 21:29:15 -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
843a2720d7 Cruft removal. 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
5328878b97 Doc typos. 2019-08-15 22:32:51 -05:00
Zach Laine
02e26eecb4 Fix Clang build. 2019-08-15 22:32:19 -05:00
Zach Laine
bbc7480991 Extend the static_vector/container_interface docs. 2019-08-15 22:09:02 -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
e6493c7ed4 Remove from container_interface view_interface inheritance; container_interface is now self-sufficient. 2019-08-15 22:09:02 -05:00
Zach Laine
e5d6edd83a Correct errors in container_interface, and extend it slightly. 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
0357340748 Add an initial sketch of a container_interface example. 2019-08-14 23:44:27 -05:00
Zach Laine
829a78f7dc Integrate mentions of view_interface into the intro. 2019-08-14 20:18:23 -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
cca6c86e9c Complete initial sketch of container_interface (without associative container API). 2019-08-14 19:51:07 -05:00
Zach Laine
58de991264 Add reverse_iterator.hpp. 2019-08-14 19:51:07 -05:00
Zach Laine
7e5fb197f0 Correct decltype(auto)/auto confusion in view_interface.hpp. 2019-08-13 23:15:50 -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
1f7b6b886b Round out view_interface docs. 2019-08-13 22:59:09 -05:00
Zach Laine
0be3e26c6b Document the new adaptor-like behavior. 2019-08-13 22:28:53 -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
67f5a45fa2 Extend the drop_while_view example and associated docs. 2019-08-13 00:08:42 -05:00
Zach Laine
3f1798eddf Cruft removal. 2019-08-12 23:19:30 -05:00
Zach Laine
fab534daa1 Add partial sketch of drop_while_view example. 2019-08-12 21:28:32 -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
542f9debc5 Create a fwd.hpp header; add a sketch of view_interface.hpp; add a partial
sketch of container_interface.hpp
2019-08-12 18:09:34 -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
bdfa59db3e Remove massive random access/contiguous code duplication in iterator_facade
specializations.
2019-08-11 12:50:28 -05:00
Zach Laine
485b135efa const_repeated_chars_iterator::reference: char const -> char 2019-08-11 11:06:00 -05:00
Zach Laine
a74fed27a0 Include compiler support info in README and docs. 2019-08-11 10:11:26 -05:00