|
constexpr | variant ()=default |
| Default constructor - will default-initialize first member of the variant.
|
|
constexpr | variant (const variant &)=default |
| Default constructor. More...
|
|
constexpr | variant (variant &&)=default |
| Default constructor.
|
|
template<typename T , typename SFINAE = std::enable_if_t<detail::is_variant_assignable<T, T0, T1>::value>> |
constexpr | variant (T &&t) |
| "Parameterized" constructor with which a value can be assigned More...
|
|
constexpr variant & | operator= (const variant &)=default |
| Default assignment operator. More...
|
|
constexpr variant & | operator= (variant &&)=default |
| Default assignment operator. More...
|
|
template<typename T , typename SFINAE = std::enable_if_t<detail::is_variant_assignable<T, T0, T1>::value>> |
constexpr variant & | operator= (T &&t) |
|
constexpr int | index () const |
| Returns the index of the active variant member.
|
|
template<typename T0, typename T1>
struct serac::variant< T0, T1 >
A simple variant type that supports only two elements.
Avoids the recursive template instantiation associated with std::variant and provides a (roughly) identical interface that is fully constexpr (when both types are trivially destructible)
- Template Parameters
-
T0 | The first member type of the variant |
T1 | The second member type of the variant |
Definition at line 207 of file variant.hpp.
template<typename T0 , typename T1 >
template<typename T , typename SFINAE = std::enable_if_t<detail::is_variant_assignable<T, T0, T1>::value>>
"Parameterized" constructor with which a value can be assigned
- Template Parameters
-
T | The type of the parameter to assign to one of the variant elements |
- Parameters
-
[in] | t | The parameter to assign to the variant's contents |
- Precondition
- The parameter type
T
must be equal to or assignable to either T0
or T1
- Note
- If the conversion is ambiguous, i.e., if t is equal or convertible to both
T0
and T1
, the first element of the variant - of type T0
- will be assigned to
Definition at line 238 of file variant.hpp.
template<typename T0 , typename T1 >
template<typename T , typename SFINAE = std::enable_if_t<detail::is_variant_assignable<T, T0, T1>::value>>
"Parameterized" assignment with which a value can be assigned
- Template Parameters
-
T | The type of the parameter to assign to one of the variant elements |
- Parameters
-
[in] | t | The parameter to assign to the variant's contents |
- See also
- variant::variant(T&& t) for notes and preconditions
Definition at line 273 of file variant.hpp.