2.3.2
New API
template <class T, class F> // freestanding
concept inplace_proxiable_target = proxiable<implementation-defined-pointer<T>, F>;
template <facade F, inplace_proxiable_target<F> T, class... Args> // freestanding
proxy<F> make_proxy_inplace(Args&&... args)
noexcept(std::is_nothrow_constructible_v<T, Args...>);
template <facade F, inplace_proxiable_target<F> T, class U, class... Args> // freestanding
proxy<F> make_proxy_inplace(std::initializer_list<U> il, Args&&... args)
noexcept(std::is_nothrow_constructible_v<T, std::initializer_list<U>&, Args...>);
template <facade F, class T> // freestanding
proxy<F> make_proxy_inplace(T&& value)
noexcept(std::is_nothrow_constructible_v<std::decay_t<T>, T>)
requires(inplace_proxiable_target<std::decay_t<T>, F>);
The function template make_proxy_inplace
overloads allow creation of proxy
with no-allocation guarantee, and also support freestanding.
What's Changed
- Fix regression in GCC 11 by @mingxwa in #90
- Implement make_proxy_inplace and inplace_proxiable_target with freestanding by @mingxwa in #92
Full Changelog: 2.3.1...2.3.2