|
template<typename TT = T, typename std::enable_if< std::is_default_constructible< TT >::value, int >::type = 0> |
| polymorphic (std::allocator_arg_t, const A &alloc) |
|
template<typename TT = T, typename std::enable_if< std::is_default_constructible< TT >::value, int >::type = 0, typename AA = A, typename std::enable_if< std::is_default_constructible< AA >::value, int >::type = 0> |
| polymorphic () |
|
template<class U , class... Ts, typename std::enable_if< std::is_constructible< U, Ts &&... >::value, int >::type = 0, typename std::enable_if< std::is_copy_constructible< U >::value, int >::type = 0, typename std::enable_if< std::is_base_of< T, U >::value, int >::type = 0> |
| polymorphic (std::allocator_arg_t, const A &alloc, in_place_type_t< U >, Ts &&... ts) |
|
template<class U , class I , class... Ts, typename std::enable_if< std::is_constructible< U, std::initializer_list< I >, Ts &&... >::value, int >::type = 0, typename std::enable_if< std::is_copy_constructible< U >::value, int >::type = 0, typename std::enable_if< std::is_base_of< T, U >::value, int >::type = 0> |
| polymorphic (std::allocator_arg_t, const A &alloc, in_place_type_t< U >, std::initializer_list< I > ilist, Ts &&... ts) |
|
template<class U , class I , class... Ts, typename std::enable_if< std::is_constructible< U, std::initializer_list< I >, Ts &&... >::value, int >::type = 0, typename std::enable_if< std::is_copy_constructible< U >::value, int >::type = 0, typename std::enable_if< std::is_base_of< T, U >::value, int >::type = 0, typename AA = A, typename std::enable_if< std::is_default_constructible< AA >::value, int >::type = 0> |
| polymorphic (in_place_type_t< U >, std::initializer_list< I > ilist, Ts &&... ts) |
|
template<class U , class... Ts, typename std::enable_if< std::is_constructible< U, Ts &&... >::value, int >::type = 0, typename std::enable_if< std::is_copy_constructible< U >::value, int >::type = 0, typename std::enable_if< std::is_base_of< T, U >::value, int >::type = 0, typename AA = A, typename std::enable_if< std::is_default_constructible< AA >::value, int >::type = 0> |
| polymorphic (in_place_type_t< U >, Ts &&... ts) |
|
template<class U , typename std::enable_if< !std::is_same< polymorphic, typename std::remove_cv< typename std::remove_reference< U >::type >::type >::value, int >::type = 0, typename std::enable_if< std::is_copy_constructible< typename std::remove_cv< typename std::remove_reference< U >::type >::type >::value, int >::type = 0, typename std::enable_if< std::is_base_of< T, typename std::remove_cv< typename std::remove_reference< U >::type >::type >::value, int >::type = 0> |
| polymorphic (std::allocator_arg_t, const A &alloc, U &&u) |
|
template<class U , typename std::enable_if< !std::is_same< polymorphic, typename std::remove_cv< typename std::remove_reference< U >::type >::type >::value, int >::type = 0, typename std::enable_if< std::is_copy_constructible< typename std::remove_cv< typename std::remove_reference< U >::type >::type >::value, int >::type = 0, typename std::enable_if< std::is_base_of< T, typename std::remove_cv< typename std::remove_reference< U >::type >::type >::value, int >::type = 0> |
| polymorphic (U &&u) |
|
| polymorphic (std::allocator_arg_t, const A &alloc, const polymorphic &other) |
|
| polymorphic (const polymorphic &other) |
|
| polymorphic (std::allocator_arg_t, const A &alloc, polymorphic &&other) noexcept(allocator_traits::is_always_equal::value) |
|
| polymorphic (polymorphic &&other) noexcept |
|
| ~polymorphic () |
|
constexpr polymorphic & | operator= (const polymorphic &other) |
|
constexpr polymorphic & | operator= (polymorphic &&other) noexcept(allocator_traits::propagate_on_container_move_assignment::value||allocator_traits::is_always_equal::value) |
|
pointer | operator-> () noexcept |
|
const_pointer | operator-> () const noexcept |
|
T & | operator* () noexcept |
|
const T & | operator* () const noexcept |
|
bool | valueless_after_move () const noexcept |
|
allocator_type | get_allocator () const noexcept |
|
void | swap (polymorphic &other) noexcept(std::allocator_traits< A >::propagate_on_container_swap::value||std::allocator_traits< A >::is_always_equal::value) |
|
template<class T, class A = std::allocator<T>>
class xyz::polymorphic< T, A >
Definition at line 160 of file polymorphic_cxx14.hpp.
template<class T , class A = std::allocator<T>>
template<class U , class I , class... Ts, typename std::enable_if< std::is_constructible< U, std::initializer_list< I >, Ts &&... >::value, int >::type = 0, typename std::enable_if< std::is_copy_constructible< U >::value, int >::type = 0, typename std::enable_if< std::is_base_of< T, U >::value, int >::type = 0, typename AA = A, typename std::enable_if< std::is_default_constructible< AA >::value, int >::type = 0>