https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100667
--- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Piotr Nycz from comment #0) > It looks that std library code start requiring this to pass: > std::is_nothrow_constructible<A&&, A>... Indeed, that's what the standard requires (Clang and MSVC reject this the same way). The standard also says that using traits like is_constructible requires complete types. However, that's clearly silly for is_constructible<A&&, A> because we know that reference binding is valid for any A whether it's complete or not. This is the subject of: https://cplusplus.github.io/LWG/issue2939