libstdc++: Make non-propagating-cache fully constexpr [PR101263]
authorJonathan Wakely <jwakely@redhat.com>
Fri, 15 Oct 2021 13:49:21 +0000 (14:49 +0100)
committerJonathan Wakely <jwakely@redhat.com>
Fri, 15 Oct 2021 17:26:53 +0000 (18:26 +0100)
commit2c564e813c0626802e5bfb066c094933d5e6a774
treee295fdfa0a8b4f083c8ad86dbde42484747a0ea6
parentad820b0bb5f8342a8db2831d1f15c103583a3ba0
libstdc++: Make non-propagating-cache fully constexpr [PR101263]

libstdc++-v3/ChangeLog:

PR libstdc++/101263
* include/std/ranges (__cached): New wrapper struct.
(__non_propagating_cache): Use __cached for contained value.
(__non_propagating_cache::_M_emplace_deref): Add constexpr. Use
std::construct_at instead of placement new.
* testsuite/std/ranges/adaptors/join.cc: Check constexpr works.
libstdc++-v3/include/std/ranges
libstdc++-v3/testsuite/std/ranges/adaptors/join.cc