Pretty Good Sum Type
1.0.0
|
Partial specialization. More...
#include <recursive_union.hpp>
Public Types | |
using | type = T |
The type held by the value. | |
using | U = recursive_wrapper< type > |
The type of the value. | |
using | result_type = R |
The type returned by visit | |
Static Public Member Functions | |
template<class... Fs> | |
static result_type | visit (recursive_union< U, Ts... > const &u, std::size_t i, Fs &&...fs) |
const overload (recursive_union<U, Ts...> const& ) | |
template<class... Fs> | |
static result_type | visit (recursive_union< U, Ts... > &u, std::size_t i, Fs &&...fs) |
non-const overload (recursive_union<U, Ts...>& ) | |
Partial specialization.
The role of this visitor is to "walk" the recursive union until the active type is reached. When it is, the form of visit that searches for the right closure to apply to the value there is invoked (see recursive union visitor for finding a matching closure)
R | return type |
I | Head of an integer pack |
I | Tail of an integer pack |
T | Head of the parameter pack |
Ts | Tail of the parameter pack (of union types) |
return type is R
, range<>
is non-empty. This specialization applies when the head of the parameter pack is a recursive_wrapper<>