32 Commits

Author SHA1 Message Date
Zach Laine
1f7fb19002 Change the __GNUC__ >= 11 && __GNUC_MINOR__ >= 3 expression in one of the
tests to __GNUC__ == 11 && ...; the workaround is not needed for GCC 12.
2023-09-05 21:01:17 -05:00
Zach Laine
df9e186bd6 Add a new v3 namespace, containing a new iterator_interface based on deducing
this instead of CRTP.
2023-06-05 00:12:54 -05:00
Zach Laine
a823593710 Add simple check of nested typedefs in iterators deriving from a
dependently-typed iterator_interface.
2023-01-31 21:50:37 -06:00
Zach Laine
437c188167 Consistently use BOOST_STL_INTERFACES_USE_CONCEPTS as the preprocessor
predicate to guard test code, instead of the hodgepodge that was used
previously.
2022-06-04 16:10:02 -05:00
Zach Laine
80ae39ed94 Re-enable testing of contiguos iterator .data() member in random_access.cpp
when __cpp_lib_concepts is defined, for the GCC versions that support this.
2021-12-08 19:33:42 -06:00
Zach Laine
54da717c42 Include <functional> explicitly in the random access and bidirectional
tests, to fix compilation failures with an obscure toolchain.
2020-08-17 22:21:18 -05:00
Zach Laine
53448edcdc Add full v2 namespace (C++20) implementation. When building in C++20 mode,
including with __cpp_lib_concepts defined, the v2 namespace is inlined.
Otherwise, the v1 namespace is inlined.  This allows switching to
concept-constrained templates without changing any user code.
2020-08-02 00:11:55 -05:00
Zach Laine
6486db0a55 Remove const from value_type in iterator_interface.
Fixes #43.
2020-06-23 18:17:26 -05:00
Glen Fernandes
e161785105 Switch to Boost.Core's lightweight_test 2020-05-01 21:50:02 -05:00
Zach Laine
9111d81885 Remove the v2 namespace, including the C++20 standard lib- and cmcstl2-based
implementations.

Fixes #27.
2020-01-03 15:24:30 -06:00
Zach Laine
f735c78fb8 GTest -> Boost.Test
Fixes #24.
2020-01-01 18:23:06 -06:00
Zach Laine
e55bb9ffdb Make element_type an enum class; bool Contiguous -> element_type Contiguity in {view,container}_interface.
Fixes #14.
2020-01-01 13:32:31 -06:00
Zach Laine
501e848304 Fix broken const-vs.-mutable comparisons. 2019-09-22 14:40:49 -05:00
Zach Laine
0086bdf8ef Address all of the remaining v2::iterator_interface-related TODOs. 2019-08-20 00:05:55 -05:00
Zach Laine
67f5ea9072 Add v2_random_access test; fix errors. 2019-08-20 00:05:55 -05:00
Zach Laine
96b7473da5 Namespace refactor. Commonly used things pulled out of v1, common details pulled out of v1::detail into detail; v1::detail -> v1::v1_dtl; v2::detail -> v2::v2_dtl. 2019-08-20 00:05:55 -05:00
Zach Laine
6c4e127ccc Add v2 tests for input, output, and bidirecitonal; all tests pass again. 2019-08-20 00:05:55 -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
78437b8b99 Fix more Clang build errors. 2019-08-16 01:27:27 -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
8af27e0ce4 Reimplement all of iterator_facade, rename it iterator_interface. 2019-08-12 00:35:20 -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
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
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
6576be234c Add a random access iterator test. 2019-08-03 19:35:38 -05:00