poly: ::emplace support for reference types

This commit is contained in:
Michele Caini
2021-03-03 12:25:34 +01:00
parent 54e9bc86cc
commit cd9ae1fbad

View File

@@ -279,8 +279,7 @@ public:
*/
template<typename Type, typename... Args>
void emplace(Args &&... args) {
storage.template emplace<Type>(std::forward<Args>(args)...);
vtable = poly_vtable<Concept, Len>::template instance<Type>();
*this = poly{std::in_place_type<Type>, std::forward<Args>(args)...};
}
/*! @brief Destroys contained object */