From: Jonathan Wakely Date: Tue, 18 Jun 2024 19:57:24 +0000 (+0100) Subject: libstdc++: Add conditional noexcept to std::pair default ctor X-Git-Tag: basepoints/gcc-16~8103 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9651d6005f9c1ac60aecf7b36d6c0bd1ead8a63b;p=thirdparty%2Fgcc.git libstdc++: Add conditional noexcept to std::pair default ctor Most of std::pair constructors implemented using C++20 concepts have a conditional noexcept-specifier, but the default constructor doesn't. This fixes that. libstdc++-v3/ChangeLog: * include/bits/stl_pair.h [__cpp_lib_concepts] (pair()): Add conditional noexcept. --- diff --git a/libstdc++-v3/include/bits/stl_pair.h b/libstdc++-v3/include/bits/stl_pair.h index 0c1e5719a1a..0d60eaba194 100644 --- a/libstdc++-v3/include/bits/stl_pair.h +++ b/libstdc++-v3/include/bits/stl_pair.h @@ -344,6 +344,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION explicit(__not_<__and_<__is_implicitly_default_constructible<_T1>, __is_implicitly_default_constructible<_T2>>>()) pair() + noexcept(is_nothrow_default_constructible_v<_T1> + && is_nothrow_default_constructible_v<_T2>) requires is_default_constructible_v<_T1> && is_default_constructible_v<_T2> : first(), second()