|
(Note that these are not member functions.)
|
template<class T > |
using | enable_variant_wrapper_t = std::enable_if_t< is_variant_wrapper_v< T > > |
|
template<class T > |
constexpr bool | is_variant_wrapper_v = is_variant_wrapper<T>::value |
|
template<class T , class V , class = enable_variant_wrapper_t<V>> |
bool | holds_alternative (const V &x) noexcept |
|
template<class T , class V , class = enable_variant_wrapper_t<V>> |
T & | get (V &x) |
|
template<class T , class V , class = enable_variant_wrapper_t<V>> |
const T & | get (const V &x) |
|
template<class T , class V , class = enable_variant_wrapper_t<V>> |
T * | get_if (V *ptr) noexcept |
|
template<class T , class V , class = enable_variant_wrapper_t<V>> |
const T * | get_if (const V *ptr) noexcept |
|
template<class>
struct caf::is_variant_wrapper< class >
Customization point.
Any type that declares itself as a variant wrapper enables visit
, holds_alternative
, get
and get_if
. Each type must provide a member function get_data()
to expose the internal std::variant
.