https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119415
Bug ID: 119415
Summary: flat_set::insert_range may not handle C++20
common-range
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: hewillk at gmail dot com
Target Milestone: ---
Bug 118156 fixes the non-common range issue, and one of the new branches is:
else if constexpr (ranges::common_range<_Rg>)
__it = _M_cont.insert(_M_cont.end(), ranges::begin(__rg),
ranges::end(__rg));
However, a C++20 common range may still not be a valid C++17 range, which makes
it a hard error in this case ():
#include <flat_set>
#include <deque>
#include <ranges>
int main() {
std::deque<__int128> d;
std::flat_set s(d);
s.insert_range(std::views::iota(__int128(0), __int128(1)));
}
https://godbolt.org/z/e3rYGrc6o
As an aside, seems like Tomasz recently became an "official"
contributor/maintainer of libstdc++ based on his numerous valuable libstdc++
submission. I am just purely curious about how to become an "official"
contributor of libstdc++? Is joining Red Hat one of the qualifications?