Commit Graph

1085 Commits

Author SHA1 Message Date
Georqy Guminov
b5df827151 Fixes. Remove some Boost.MPL usages. Remove unused includes. 2025-01-25 09:47:52 +03:00
Georgiy Guminov
01fd35e9f8 abstract conjunction. 2025-01-25 09:47:52 +03:00
Georgiy Guminov
c02def8acf return addressof & conjunction. 2025-01-25 09:47:52 +03:00
Georgiy Guminov
3b3d162575 Make macro more readable. 2025-01-25 09:47:52 +03:00
Georgiy Guminov
4ab19e045f Add static_assert messages. 2025-01-25 09:47:52 +03:00
Georgiy Guminov
82b5c44cd3 Return is iterator CXX17 test. 2025-01-25 09:47:52 +03:00
Georgiy Guminov
2d58d65462 Omitted. 2025-01-25 09:47:52 +03:00
Georgiy Guminov
a0d04d9491 Replace move with static_cast 2025-01-25 09:47:52 +03:00
Georgiy Guminov
4a49b8a1a2 Return BOOST_NOEXCEPT 2025-01-25 09:47:52 +03:00
Georgiy Guminov
054c013bba CXX11 2025-01-25 09:47:48 +03:00
Andrey Semashev
4b40364d6d Work around compilation errors on clang-10 through 12. boost-1.87.0.beta1 boost-1.87.0 2024-10-11 01:04:21 +03:00
Andrey Semashev
7c55a6cef8 Marked output_proxy assignment as const.
This is also required for compliance with std::output_iterator concept.
2024-10-11 00:34:28 +03:00
Georgiy Guminov
1ea8087623 Check for compliance with output_iterator in function_output_iterator_test. 2024-10-11 00:29:20 +03:00
Andrey Semashev
e4eaeeac44 Make function_output_iterator compliant with std::output_iterator concept.
Fixes https://github.com/boostorg/iterator/issues/85.
Closes https://github.com/boostorg/iterator/pull/87.
2024-10-11 00:26:30 +03:00
Andrey Semashev
46ffe06b3d Removed MSVC-12 job from AppVeyor CI.
This compiler is no longer supported by Boost.SmartPtr that is
used in tests.
2024-10-11 00:21:46 +03:00
Andrey Semashev
8b83324682 Removed gcc 4.6 and 4.7 from GitHub Actions CI.
These compilers are not supported by Boost.SmartPtr and Boost.Optional,
which are used in tests.
2024-10-11 00:13:00 +03:00
René Ferdinand Rivera Morell
ce030ab2c3 Add support for modular build structure. (#84)
* Make the library modular usable.

* Switch to library requirements instead of source. As source puts extra source in install targets.

* Remove not-needed reference to Conversion dependency.

* Add missing b2 testing module import.

* Add requires-b2 check to top-level build file.

* Bump B2 require to 5.2

* Change all <source> references to <library>.

* Update copyright dates.

* Move inter-lib dependencies to a project variable and into the build targets.

* Update build deps.
2024-08-19 01:22:08 +03:00
Andrey Semashev
4914e1f40a Updated deprecated include in docs.
Closes https://github.com/boostorg/iterator/pull/83.
boost-1.86.0.beta1 boost-1.86.0
2024-07-03 15:12:28 +03:00
Andrey Semashev
0abef890ee Replaced macos-11 GHA image with 12, 13 and 14 since 11 is being removed. 2024-05-21 01:17:20 +03:00
Andrey Semashev
4f7219965a Added gcc-13 CI job. boost-1.85.0.beta1 boost-1.85.0 2024-02-06 00:35:15 +03:00
Andrey Semashev
988594fb9d Added clang-17 CI jobs. 2024-02-06 00:26:38 +03:00
Andrey Semashev
3fa2242082 Added Windows jobs to GHA CI. 2024-02-06 00:24:05 +03:00
Andrey Semashev
43dde9b9c3 Reduced CI job timeouts. 2024-02-06 00:22:10 +03:00
Andrey Semashev
7968dd3ea8 Replaced actions/checkout usage with manual download commands.
This fixes the deprecation warnings for actions/checkout@v3. actions/checkout@v4
is not functional because of the upstream bug:

https://github.com/actions/checkout/issues/1590
2024-02-06 00:17:16 +03:00
Andrey Semashev
dfe11e7144 Removed one more $ tag. 2024-01-03 01:43:52 +03:00
Andrey Semashev
9cc1a4fdd1 Removed $Date$ tags from docs.
The tags were not being updated for a long time now and were
visible in the final docs.

Reported in https://github.com/boostorg/website/issues/762.
2024-01-03 01:31:05 +03:00
Andrey Semashev
ae5d7d8c0c Added a CMake test. boost-1.84.0 2023-11-17 17:47:20 +03:00
Andrey Semashev
d72d57fa39 Removed dependency on Boost.Conversion in CMakeLists.txt.
Fixes https://github.com/boostorg/iterator/issues/81.
2023-11-17 17:24:02 +03:00
Andrey Semashev
c98f965388 Use gcc-11 libstdc++ for clang-12 through 15. 2023-11-17 11:06:21 +03:00
Andrey Semashev
d09f78ae9b Removed C++03 CI jobs. 2023-11-17 04:46:21 +03:00
Andrey Semashev
a9dabd3c65 Removed dependency on Boost.Conversion in tests.
This reduces the minimum supported compilers versions.
2023-11-17 04:25:29 +03:00
Andrey Semashev
80bb1ac9e4 Avoid including <utility>, added a missing include. boost-1.83.0 boost-1.84.0.beta1 boost-1.83.0.beta1 2023-06-22 21:14:03 +03:00
Brian Weed
d11499c08c Performance improvement: (#79)
Performance improvement: Add move semantics to by-value parameters (iterator and predicate), to eliminate the cost of copy-construction. Both the Predicate (Normally a std::function, or lambda), and custom iterators can have state, which can be expensive to copy. Profiler identified this as a bottleneck while using boost::adaptors::filtered.
2023-06-22 21:06:19 +03:00
Andrey Semashev
6d02c36718 Add clang-16 CI jobs, switch to clang-15 from stock Ubuntu repos. 2023-06-05 03:17:56 +03:00
Andrey Semashev
85b542e1b6 Extracted is_iterator trait to a separate header.
Also, reworked is_iterator to be more robust against various corner cases
and added dedicated tests for the type trait.
2023-05-21 15:18:54 +03:00
Alexander Grund
e8fbd92a61 Use BOOST_STATIC_ASSERT instead of BOOST_MPL_ASSERT (#78)
The MPL version is slower to compile and `BOOST_STATIC_ASSERT` is
already used in some places. So unify that.

This also fixes `Wzero-as-null-pointer-constant` warnings, see https://github.com/boostorg/mpl/pull/75
2023-05-07 15:23:16 +03:00
Andrey Semashev
7c9b4296a1 Fixed accessing members of the dereferenced value after iterator post-increment.
The recent commit 5777e9944b broke code such as
(*it++).foo(), where the result of dereferencing would be convertible to
the value type but did not provide the members of the value type. To mitigate
this, return a reference to the value instead of a proxy object. This will only
work for non-writable iterators (and it didn't work for writable iterators
before either) because in that case a proxy is needed to be able to intercept
operator=.

Also fix a similar issue with (it++)->foo() by adding operator-> overloads
to the post-increment result proxies.

Added tests for the fixes.
boost-1.82.0 boost-1.82.0.beta1 boost-1.81.0
2022-11-18 00:46:21 +03:00
Andrey Semashev
0a95636faf Added test for converting func_input_iter increment results to the iterator type. boost-1.81.0.beta1 2022-11-09 21:19:00 +03:00
Andrey Semashev
5777e9944b Added conversion from postfix increment proxy to iterator type.
This allows expressions such as `Iterator it2(it1++)` to compile.

Additionally separated operations that are allowed on the result of
dereferencing the proxy to a separate set of proxies to make the allowed
set of expressions more strict and unambiguous. In particular, it means
`it++` cannot be converted to value type and `*it++` cannot be converted
to the iterator type anymore. Also, make sure `*it1++ = *it2++` works
as expexted by explicitly converting the proxy to the value type on
assignment.

Fixes https://github.com/boostorg/iterator/issues/75.
2022-11-09 21:16:20 +03:00
Andrey Semashev
853ba3d3c7 Use the proper derived type of the function_input_iterator in iterator_facade.
This fixes incorrect final iterator type being used in iterator_facade, which
results in an internal base class being returned from various facade methods.

Reported in https://github.com/boostorg/iterator/issues/75.
2022-11-09 21:15:44 +03:00
Andrey Semashev
f82627f2cc Updated to GHA checkout@v3 to avoid deprecation warnings. 2022-10-18 17:57:57 +03:00
Andrey Semashev
ed1d96f251 GitHub Actions config update.
- Added gcc-12 and clang-13 through 15 jobs.
- Added C++23 testing for gcc and clang on Linux.
- Updated clang version for UBSAN job.
- Updated Ubuntu version for clang jobs to avoid having to use external APT
  repository.
- Updated python package installation for compatibility with Ubuntu 22.04.
2022-09-10 01:29:45 +03:00
Andrey Semashev
ce52aee3ce Switched gcc-9 to ubuntu-20.04 GHA CI image. 2022-08-14 17:53:43 +03:00
Andrey Semashev
17355c5ad0 Updated copyright years. 2022-08-14 14:01:45 +03:00
Andrey Semashev
9504b3bced Replaced ubuntu-18.04 GHA CI images with containers.
Also use ubuntu-latest image for jobs that are running in a container.
2022-08-14 14:00:17 +03:00
Andrey Semashev
2cc45f1694 Switch to macos-11 GHA image as macos-10.15 is deprecated. 2022-08-12 15:59:54 +03:00
Andrey Semashev
a3269e536f Include remove_reference.hpp only when needed. boost-1.80.0.beta1 boost-1.80.0 2022-07-01 00:23:19 +03:00
Andrey Semashev
129245a985 Added tests for function_output_iterator. 2022-07-01 00:14:14 +03:00
Andrey Semashev
1a80896934 Disabled assignment of output_proxy to output_proxy. 2022-07-01 00:13:32 +03:00
Andrey Semashev
ee2d3a6596 Made output_proxy private and made its internals private. 2022-06-30 23:35:58 +03:00