https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121804

            Bug ID: 121804
           Summary: join_view::iterator::_M_get_inner should be noexcept
           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: ---

The _M_get_inner() introduced by
https://github.com/gcc-mirror/gcc/commit/7f7f1878eedd8093d382e1e7b74649d7e97d5918
 should be noexcept, otherwise it will make applying ranges::iter_move to
join_view::iterator always non-noexcept, for example:

#include <vector>
#include <ranges>

int main() {
  std::vector<int> v;
  auto vit = v.begin();
  static_assert(noexcept(std::ranges::iter_move(vit)));

  std::vector<std::vector<int>> vv;
  std::ranges::join_view j{vv};
  auto jit = j.begin();
  static_assert(noexcept(std::ranges::iter_move(jit))); // failed after today
}

Reply via email to