Pretty Good Sum Type
1.0.0
|
A workaround for the absence of recursive types. More...
Go to the source code of this file.
Classes | |
struct | pgs::is_recursive_wrapper< T > |
Primary template of a metafunction to classify a type as recursive_wrapper<> or not. More... | |
struct | pgs::is_recursive_wrapper< recursive_wrapper< T > > |
Partial specialization for types that are recursive wrappers. More... | |
struct | pgs::recursive_wrapper_unwrap< T > |
Primary template of a metafunction to compute the type contained by a recursive_wrapper<> . More... | |
struct | pgs::recursive_wrapper_unwrap< recursive_wrapper< T > > |
Partial specialization for types that are recursive wrappers. More... | |
class | pgs::recursive_wrapper< T > |
types More... | |
Typedefs | |
template<class T > | |
using | pgs::not_is_a_recursive_wrapper = negation< is_recursive_wrapper< T >> |
Negation of the is_recursive_wrapper<> metafunction. | |
template<class W > | |
using | pgs::recursive_wrapper_unwrap_t = typename recursive_wrapper_unwrap< W >::type |
Alias template for the result of recursive_wrapper_unwrap<> . | |
template<class T , class U > | |
using | pgs::is_recursive_wrapper_containing = and_< is_recursive_wrapper< T >, std::is_same< U, recursive_wrapper_unwrap_t< T >> > |
Metafunction to determine if T is a recursive_wrapper<> with underlying type U | |
template<class T , class U > | |
using | pgs::not_is_recursive_wrapper_containing = negation< is_recursive_wrapper_containing< T, U >> |
Negation of the is_recursive_wrapper_containing<> metafunction. | |
A workaround for the absence of recursive types.