[Bug c++/116095] New: satisfaction of atomic constraint depends on itself, when piping boost range into range-v3
enricomaria.dean6elis at gmail dot com
gcc-bugzilla@gcc.gnu.org
Thu Jul 25 18:52:25 GMT 2024
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116095
Bug ID: 116095
Summary: satisfaction of atomic constraint depends on itself,
when piping boost range into range-v3
Product: gcc
Version: 14.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: enricomaria.dean6elis at gmail dot com
Target Milestone: ---
Here's a simple example that fails to compile with GCC if -std=c++20 is passed.
It compiles with -std=c++17 with GCC. It compiles in both cases with Clang.
#include <boost/range/iterator_range.hpp>
#include <functional>
#include <list>
#include <range/v3/range/conversion.hpp>
#include <range/v3/view/transform.hpp>
#include <vector>
using namespace ranges;
using namespace ranges::views;
int main()
{
std::list<int> v;
auto r = boost::make_iterator_range(v);
auto w = r
| transform([](auto x){ return x; })
| to_vector;
}
Initially, I had tried to squeeze the example a bit more, and got to the
following:
#include <boost/range/iterator_range_core.hpp>
#include <list>
#include <range/v3/view/ref.hpp>
int main() {
std::list<int> l;
using Foo = const
ranges::ref_view<boost::iterator_range<decltype(l.begin())>>&;
ranges::_size_::has_non_member_size<Foo>;
}
for which GCC <= 10.5 would compile.
I haven't received any useful reply/comment on stackoverflow
(https://stackoverflow.com/questions/78699349/why-gcc-11-1-rejects-range-v3-c20-concept-applied-to-ref-view-of-boostiterat),
nor or range-v3 github repo
(https://github.com/ericniebler/range-v3/issues/1823).
Here's a compiler explorer example: https://godbolt.org/
More info is at the stackoverflow question I linked.
More information about the Gcc-bugs
mailing list