Skip to content

2.3.2

Compare
Choose a tag to compare
@mingxwa mingxwa released this 22 Apr 08:48
· 65 commits to main since this release
aa384eb

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