https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95788
--- Comment #1 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Patrick Palka <ppa...@gcc.gnu.org>: https://gcc.gnu.org/g:9158a4d2a6cd58d6bb591d5ce64e766b399e4aef commit r11-3739-g9158a4d2a6cd58d6bb591d5ce64e766b399e4aef Author: Patrick Palka <ppa...@redhat.com> Date: Thu Oct 8 18:10:05 2020 -0400 libstdc++: Make ranges::construct_at constexpr-friendly [PR95788] This rewrites ranges::construct_at in terms of std::construct_at so that we can piggyback on the compiler's existing support for intercepting placement new within std::construct_at during constexpr evaluation, instead of having to additionally teach the compiler about ranges::construct_at. While we're making changes to ranges::construct_at, this patch also declares it conditionally noexcept and qualifies the calls to declval in its requires-clause. libstdc++-v3/ChangeLog: PR libstdc++/95788 * include/bits/ranges_uninitialized.h: (__construct_at_fn::operator()): Rewrite in terms of std::construct_at. Declare it conditionally noexcept. Qualify calls to declval in its requires-clause. * testsuite/20_util/specialized_algorithms/construct_at/95788.cc: New test.