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
}