|
| variant () noexcept |
| Default ctor creating a variant with default value of the first alternative type.
|
|
| ~variant () noexcept |
| Destructor.
|
|
| variant (const variant &rhs) |
| Copy ctor.
|
|
| variant (variant &&rhs) noexcept |
| Move ctor.
|
|
variant & | operator= (const variant &rhs) |
| Copy operator.
|
|
variant & | operator= (variant &&rhs) |
| Move operator.
|
|
template<class T, typename std::enable_if<!std::is_same< T, variant & >::value, int >::type = 0> |
| variant (T &&value) |
| Ctor from an object of supported type T .
|
|
template<class T, typename std::enable_if<!std::is_same< T, variant & >::value, int >::type = 0> |
variant & | operator= (T &&value) |
| Assignment from an object of supported type T .
|
|
template<size_t I, class... ARGS> |
variant_alternative< I, variant< TS... > >::type & | emplace (ARGS &&...args) |
| Emplaces an object as alternative at index I .
|
|
template<class T, class... ARGS> |
T & | emplace (ARGS &&...args) |
| Emplaces an object as a type T .
|
|
size_t | index () const noexcept |
| Gets the zero-based index of the alternative held by this instance.
|
|
void | swap (variant &other) |
| Swaps the content of this variant with the other one.
|
|
bool | valueless_by_exception () const noexcept |
| Returns false only if this instance holds a value.
|
|
|
(Note that these are not member symbols.)
|
template<class T> |
static const constexpr size_t | variant_alternatives_size_v = variant_size<T>::value |
| Get the number of alternatives in a variant.
|
|
template<size_t I, class... TS> |
const variant_alternative_t< I, variant< TS... > > & | get (const variant< TS... > &var) |
| Gets the value of the given Shims::variant var as the alternative with index I .
|
|
template<size_t I, class... TS> |
variant_alternative_t< I, variant< TS... > > & | get (variant< TS... > &var) |
| Gets the value of the given Shims::variant var as the alternative with index I .
|
|
template<size_t I, class... TS> |
variant_alternative_t< I, variant< TS... > > | get (variant< TS... > &&var) |
| Gets the value of the given Shims::variant var as the alternative with index I .
|
|
template<class T, class... TS> |
const T & | get (const variant< TS... > &var) |
| Gets the value of the given Shims::variant var as the alternative with type T .
|
|
template<class T, class... TS> |
T & | get (variant< TS... > &var) |
| Gets the value of the given Shims::variant var as the alternative with type T .
|
|
template<class T, class... TS> |
T | get (variant< TS... > &&var) |
| Gets the value of the given Shims::variant var as the alternative with type T .
|
|
template<size_t I, class... TS> |
std::add_pointer< variant_alternative_t< I, variant< TS... > > >::type | get_if (variant< TS... > *pvar) noexcept |
| Tries to get the value of the given Shims::variant pointer pvar as the alternative with index I .
|
|
template<class T, class... TS> |
std::add_pointer< constT >::type | get_if (const variant< TS... > *pvar) noexcept |
| Tries to get the value of the given Shims::variant pointer pvar as the alternative with type T .
|
|
template<class T, class... TS> |
std::add_pointer< T >::type | get_if (variant< TS... > *pvar) noexcept |
| Tries to get the value of the given Shims::variant pointer pvar as the alternative with type T .
|
|
template<class T, class... TS> |
bool | holds_alternative (const variant< TS... > &var) noexcept |
| Gets whether the Shims::variant var holds an instance of type T .
|
|
template<class VISITOR, class VARIANT> |
auto | visit (VISITOR &&visitor, VARIANT &&var) -> decltype(visitor(get< 0 >(var))) |
| Visits the given Shims::variant var. Cvb::Shims::visit can only visit one variant (not multiple like std::visit).
|
|
template<class... TS> |
bool | operator== (const variant< TS... > &lhs, const variant< TS... > &rhs) |
| Equality operator for Shims::variant objects.
|
|
template<class... TS> |
bool | operator!= (const variant< TS... > &lhs, const variant< TS... > &rhs) |
| Inequality operator for Shims::variant objects.
|
|
template<class... TS> |
bool | operator< (const variant< TS... > &lhs, const variant< TS... > &rhs) |
| Less than operator for Shims::variant objects.
|
|
template<class... TS> |
bool | operator<= (const variant< TS... > &lhs, const variant< TS... > &rhs) |
| Less-than or equal operator for Shims::variant object.
|
|
template<class... TS> |
bool | operator> (const variant< TS... > &lhs, const variant< TS... > &rhs) |
| Greater-than operator for Shims::variant object.
|
|
template<class... TS> |
bool | operator>= (const variant< TS... > &lhs, const variant< TS... > &rhs) |
| Greater-than or equal operator for Shims::variant object.
|
|
template<class... TS>
class Cvb::Shims::variant< TS >
This class is a replacement for C++17 std::variant.