virtual_ptr: deduction guide for rvalue references

This commit is contained in:
Jean-Louis Leroy
2025-06-15 10:54:32 -04:00
parent 5a58be1aa8
commit 5c1dfd8c64

View File

@@ -798,6 +798,13 @@ class virtual_ptr : public detail::virtual_ptr_impl<Class, Registry> {
template<class Class>
virtual_ptr(Class&) -> virtual_ptr<Class, BOOST_OPENMETHOD_DEFAULT_REGISTRY>;
template<class Class>
virtual_ptr(Class&&) -> virtual_ptr<Class, BOOST_OPENMETHOD_DEFAULT_REGISTRY>;
// Alas this is not allowed:
// template<class Registry, class Class>
// virtual_ptr<Registry>(Class&) -> virtual_ptr<Class, Registry>;
template<class Registry, class Class>
inline auto final_virtual_ptr(Class&& obj) {
return virtual_ptr<std::remove_reference_t<Class>, Registry>::final(