A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://en.cppreference.com/w/cpp/language/../memory/polymorphic.html below:

std::polymorphic - cppreference.com

template< class T, class Allocator = std::allocator<T> >
class polymorphic;
(1) (since C++26) (2) (since C++26)

1) std::polymorphic is a wrapper containing dynamically-allocated object of possibly different types with value-like semantics.

An std::polymorphic object manages the lifetime of an owned object. The owned object is of type T or any type (publicly and unambiguously) derived from T. An std::polymorphic object can only have no owned object after it has been moved from, in this case it is valueless .

Every object of type std::polymorphic<T, Allocator> uses an object of type Allocator to allocate and free storage for the owned object as needed.

If a program declares an explicit or partial specialization of std::polymorphic, the behavior is undefined.

[edit] Template parameters T - the type of the owned object Allocator - the type of the associated allocator Type requirements -T may be an incomplete type. -If T is one of the following types, the program is ill-formed:
-If Allocator does not satisfy the requirements of Allocator, the program is ill-formed. -If std::allocator_traits<Allocator>::value_type is not the same type as T, the program is ill-formed. [edit] Nested types [edit] Data members Member Description Allocator alloc the asociated allocator
(exposition-only member object*) [edit] Member functions [edit] Non-member functions [edit] Notes [edit] Example [edit] See also a wrapper containing dynamically-allocated object with value-like semantics
(class template) [edit]

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4