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?

Reply via email to