Resilient
Typedefs
Common

Module which contains common classes and functions to operate with the library. More...

Typedefs

template<typename... T>
using resilient::Variant = detail::Variant< T... >
 A Variant implementation. More...
 
template<typename T >
using is_variant = detail::is_variant< T >
 Check whether a type is a Variant. More...
 
template<typename T >
using if_is_variant = std::enable_if_t< is_variant< std::decay_t< T >>::value, void * >
 SFINAE type which is valid if the type is a variant. More...
 
template<typename T >
using if_is_not_variant = std::enable_if_t< not is_variant< std::decay_t< T >>::value, void * >
 SFINAE type which is valid if the type is not a variant. More...
 

Detailed Description

Module which contains common classes and functions to operate with the library.

Typedef Documentation

template<typename T >
using if_is_not_variant = std::enable_if_t<not is_variant<std::decay_t<T>>::value, void*>

SFINAE type which is valid if the type is not a variant.

Template Parameters
TThe type that should be a variant
template<typename T >
using if_is_variant = std::enable_if_t<is_variant<std::decay_t<T>>::value, void*>

SFINAE type which is valid if the type is a variant.

Template Parameters
TThe type that should be a variant
template<typename T >
using is_variant = detail::is_variant<T>

Check whether a type is a Variant.

Template Parameters
TThe type to check
template<typename... T>
using resilient::Variant = typedef detail::Variant<T...>

A Variant implementation.

The concept is equivalent with the std::variant from C++17.

See also
http://en.cppreference.com/w/cpp/utility/variant
Template Parameters
T...The types of the variant