https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94418
--- Comment #1 from Rafael Avila de Espindola <rafael at espindo dot la> --- For what it is worth, libc++ implements this. Given static_assert(std::is_nothrow_copy_constructible_v<std::vector<int>::reverse_iterator>); With libstdc++: $ clang -S test3.cc -std=c++17 test3.cc:3:1: error: static_assert failed due to requirement... with libc++ $ clang clang -S test3.cc -std=c++17 -stdlib=libc++ <no error>