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 }