Compute an overload set of candidate functions, one per alternative.
Synopsis
Declared in <bslstl_variant.h>
template<
class t_SRC,
size_t t_INDEX,
class t_HEAD,
class... t_TAIL>
struct Variant_OverloadSetImp
: Variant_OverloadSetImp<t_SRC, t_INDEX + 1, t_TAIL...>
Description
This component‐private metafunction computes an overload set consisting of one function, named candidate, for each type in (template parameters) t_HEAD, t_TAIL..., having one parameter of that type.
Each such function participates in overload resolution only when std::declval<t_SRC>() is convertible to the alternative without narrowing, and returns bsl::integral_constant<t_INDEX + i>, where i is the zero‐based index of the corresponding alternative. Note that a type that occurs multiple times in t_HEAD, t_TAIL... (possibly with varying cv‐qualifications) will only result in the generation of a single candidate. This implementation relies on expression SFINAE, decltype, std::declval, and P1957R2; since these features are not available in C++03, the C++03 version requires an exact match modulo cv‐qualification.
Base Classes
Name |
Description |
|
Compute an overload set of |
Static Member Functions
Name |
Description |
Overload candidate selecting alternative |
Using Declarations
Name |
Description |
Import base overload candidates for overload resolution. |
Specializations
Name |
Description |
|
Provide the base case, reached with a single remaining alternative. |
Derived Classes
Name |
Description |
|
Compute an overload set of |
Created with MrDocs