285 Commits

Author SHA1 Message Date
Zach Laine
e60873635e MacOS 12 -> 13 in Github action builds. boost-1.88.0.beta1 boost-1.88.0 2025-02-21 00:01:05 -06:00
Zach Laine
7776ae4191 Use BOOST_GCC, defined in config.hpp only for real (non-Clang-emulated) GCC
builds, in place of relevant uses of the __GNUC__ macro.
2025-02-21 00:01:05 -06:00
Dirk Stolle
75a9a7d812 Remove executable flag from CMakeLists.txt
See <https://github.com/boostorg/admin/issues/47> for more info.

[ci skip]
2025-02-16 12:49:20 -06:00
Dirk Stolle
ea68455268 Fix two typos 2025-02-16 12:48:36 -06:00
Laurent Rineau
2d20447488 fix a typo 2025-02-16 12:47:45 -06:00
Zach Laine
cefbd3014a When defining BOOST_STL_INTERFACES_USE_DEDUCED_THIS=1, require C++23 mode for
the cases where __cpp_explicit_this_parameter is not defined, but the compiler
is known to support it.  Obviously, even if those compiler support it, it's
not available in older C++ versions.

Fixes #72.
Related to https://github.com/boostorg/stl_interfaces/pull/68
boost-1.87.0 boost-1.87.0.beta1
2024-11-10 12:43:48 -06:00
Edward Nolan
f89646cddf Enable BOOST_STL_INTERFACES_USE_DEDUCED_THIS on Clang 19 and MSVC 19.41
Clang 19 and MSVC 19.41 both have support for deducing this that is
complete enough to allow the v3 version of this library to work but
not complete enough for the compilers to define
__cpp_explicit_this_parameter. This commit enables the v3 version of
this library on compilers with that version or newer. We make use of
BOOST_CLANG_VERSION here because on AppleClang it should provide the
version of upstream Clang that was used for that release.
2024-10-24 17:47:40 -05:00
Zach Laine
2d001de901 Add [[no_unique_address]] to the data members of the adaptors in
view_adaptor.hpp.

Fixes #65.
2024-10-23 20:44:43 -05:00
Zach Laine
e0ff7f6c80 Convertible to bool -> void in sequence container swap() requirements.
Fixes #71.
2024-10-21 18:11:36 -05:00
Rene Rivera
b87b34c4cb Adjust doc build to avoid boost-root references. 2024-09-27 18:46:58 -05:00
Rene Rivera
c23c56d7ea Move inter-lib dependencies to a project variable and into the build targets. 2024-09-27 18:46:58 -05:00
Rene Rivera
34a25d2c79 Update copyright dates. 2024-09-27 18:46:58 -05:00
Rene Rivera
12f2b68504 Change all <source> references to <library>. 2024-09-27 18:46:58 -05:00
Rene Rivera
1ea9fd3ca2 Bump B2 require to 5.2 2024-09-27 18:46:58 -05:00
Rene Rivera
4c6c77aa2b Add requires-b2 check to top-level build file. 2024-09-27 18:46:58 -05:00
Rene Rivera
3acffbf46b Add missing import-search for cconfig/predef checks. 2024-09-27 18:46:58 -05:00
Rene Rivera
3d3f3cc507 Switch to library requirements instead of source. As source puts extra source in install targets. 2024-09-27 18:46:58 -05:00
Rene Rivera
9bb6e49f82 Make the library modular usable. 2024-09-27 18:46:58 -05:00
Zach Laine
ea2f078d0e Try to repair Github actions by removing GCC6 from the build, and not using
any docker containers at all.
2024-09-27 18:40:47 -05:00
Zach Laine
6e5e8cb88c actions/checkout@v4 -> actions/checkout@v3 in Github actions. 2024-09-27 18:35:19 -05:00
Zach Laine
b6fb7dca30 actions/checkout@v2 -> actions/checkout@v4 in Github actions. 2024-09-27 18:32:32 -05:00
Zach Laine
0f422d58cb Fix typo in adaptor::op() (f/f_ confusion). boost-1.85.0.beta1 boost-1.85.0 boost-1.86.0.beta1 boost-1.86.0 2024-01-22 01:34:07 -06:00
Zach Laine
1c050d2df5 Add an rvalue-qualified overload of closure::operator(). This makes
forwarding work properly in cases such as r | foo(std::string("foo")), where
foo is an adaptor.  Without this, the std::string temporary dangles.
2024-01-21 15:26:41 -06:00
Zach Laine
510eb431fb Fixes #63. 2023-09-05 21:02:51 -05:00
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.
boost-1.84.0.beta1 boost-1.84.0 boost-1.83.0.beta1 boost-1.83.0
2023-06-05 00:12:54 -05:00
Zach Laine
6ee9557df9 Fix errors on MSVC. 2023-06-04 19:05:28 -05:00
Zach Laine
85e07407ab Update the OSX test runner image and XCode version. 2023-05-29 22:52:00 -05:00
Zach Laine
d61867d8be GCC 13 reports as ill-formed code that evaluates a concept C more than once
with the same template parameters, when the value of C changes between the
evaluations.  This is correct, but no other implementation checks this.  Move
all the hidden friends out of the v2::iterator_interface to fix these kinds of
errors.
2023-05-29 15:21:37 -05:00
Zach Laine
cb96522275 detail::sub -> detail::iter_sub; make iter_sub a bit more robust. 2023-05-03 20:06:56 -05:00
Zach Laine
46c82966a6 Fix sign confusion in iterator_interface::op<=>. 2023-05-03 20:06:17 -05:00
Zach Laine
c022029c27 In C++20 and later, return void from operator++(int), for input_iterators.
This matches the requirements of the std::input_iterator concept.  This is not
done in earlier C++ versions, because it completely breaks use of input
iterators with the standard algorithms.
2023-05-02 20:31:02 -05:00
Zach Laine
21e03e7013 Use the given iterator_concept, but only define iterator_category when
appropriate to do so.  Appropriateness follows the algorithm for zip_view's
iterator.  See https://eel.is/c++draft/range.zip.transform.iterator#1.

Requested by LEWG reviewers of iterator_interface.
2023-05-02 20:31:02 -05:00
Zach Laine
86aeeb1bb5 Add support for operator<=> comparisons of iterator_interfaces. 2023-03-29 18:55:25 -05:00
Zach Laine
965b1119cb Disable iterator_interface::operator-> when pointer is void or reference is
not a language reference.
2023-03-26 14:14:11 -05:00
Zach Laine
51c212234e Use iterator_category_base with the C++20 version of iterator_interface. 2023-03-25 21:33:34 -05:00
Zach Laine
558548fa8a Add detail::iterator_category_base. 2023-03-25 18:01:42 -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
8390819a70 Print message when cloning Boost. 2022-12-06 05:29:01 -06:00
Zach Laine
8c8f7905a1 Set the CXX_STANDARD CMake property on the compile tests. 2022-12-05 21:09:36 -06:00
Zach Laine
158fca0b6b Make the compile_sfinae_path_mutable_iterator compile-test 14-friendly. 2022-12-05 20:29:46 -06:00
Zach Laine
c157b1637a Add a test to cover #59 so that it does not pop up again.
Fixes #60.
2022-12-05 20:11:03 -06:00
Zach Laine
7dd2b97589 Cruft removal. 2022-11-19 22:26:03 -06:00
Zach Laine
1dc2923434 Add non-const overloads of op* and op-> to v1 iterator_interface. This
matches more closely what v2 does.

Fixes #59.
boost-1.82.0.beta1 boost-1.82.0 boost-1.81.0
2022-11-18 19:54:40 -06:00
Zach Laine
24f9450297 Doc copy editing. boost-1.80.0 boost-1.81.0.beta1 boost-1.80.0.beta1 2022-06-04 20:06:33 -05:00
Zach Laine
bd21cd308e Add some user/std mixed cases to view_adaptor.cpp. 2022-06-04 19:52:51 -05:00
Zach Laine
544c7448b4 Add a discussion of why it is sometimes necessary to use bind_back() directly. 2022-06-04 17:17:41 -05:00
Zach Laine
303a9da254 Create tutorial for the new range adaptor helpers. 2022-06-04 17:17:41 -05:00
Zach Laine
c6d7fa15fa Break take_view out into its own header, in example/. 2022-06-04 16:10:02 -05:00
Zach Laine
808cbfac15 Break reverse_view out into its own header, in example/. 2022-06-04 16:10:02 -05:00