289 Commits

Author SHA1 Message Date
Zach Laine 48375e9564 Create separate macro guards for the use of GCC's _RangeAdaptorClosure, since
they keep messing with it.
boost-1.91.0.beta1 boost-1.91.0 boost-1.90.0.beta1 boost-1.90.0 boost-1.92.0.beta1
2025-10-31 17:15:34 -05:00
Zach Laine 0cfbf994a7 Fix ill-formedness when using move-only callable with closure and adaptor. 2025-10-31 17:05:09 -05:00
Stat1cV01D 4f7dab3519 Fixes compilation issue for g++14 2025-10-31 16:21:28 -05:00
Zach Laine 9bf4c92758 Fix inverted order of operands in op<=> implementations.
Fixes #79.
boost-1.89.0
2025-07-13 15:59:05 -05:00
Zach Laine e60873635e MacOS 12 -> 13 in Github action builds. boost-1.88.0 boost-1.88.0.beta1 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.beta1 boost-1.87.0
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.86.0.beta1 boost-1.86.0 boost-1.85.0.beta1 boost-1.85.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.83.0 boost-1.84.0.beta1 boost-1.84.0 boost-1.83.0.beta1
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