Lines Matching full:variant

11 // <variant>
21 #include <variant>
30 { // test call operator forwarding - no variant
40 { // test call operator forwarding - single variant, single arg
41 using V = std::variant<int>;
52 { // test call operator forwarding - single variant, multi arg
53 using V = std::variant<int, long, double>;
64 { // test call operator forwarding - multi variant, multi arg
65 using V = std::variant<int, long, double>;
66 using V2 = std::variant<int *, std::string>;
79 using V = std::variant<int, long, double, std::string>;
91 using V = std::variant<int, long, double, int*, std::string>;
109 using V = std::variant<int>;
121 { // multi argument - multi variant
122 using V = std::variant<int, std::string, long>;
130 using V = std::variant<int, long, double, std::string>;
138 using V = std::variant<int, long, double, int*, std::string>;
151 { // test call operator forwarding - no variant
157 { // test call operator forwarding - single variant, single arg
158 using V = std::variant<int>;
165 { // test call operator forwarding - single variant, multi arg
166 using V = std::variant<int, long, double>;
173 { // test call operator forwarding - multi variant, multi arg
174 using V = std::variant<int, long, double>;
175 using V2 = std::variant<int *, std::string>;
184 using V = std::variant<int, long, double, std::string>;
192 using V = std::variant<int, long, double, int*, std::string>;
205 using V = std::variant<int>;
210 using V = std::variant<short, long, char>;
215 using V1 = std::variant<int>;
216 using V2 = std::variant<int, char *, long long>;
217 using V3 = std::variant<bool, int, int>;
224 using V1 = std::variant<int>;
225 using V2 = std::variant<int, char *, long long>;
226 using V3 = std::variant<void *, int, int>;
233 using V = std::variant<int, long, double, int *>;
238 using V = std::variant<int, long, double, long long, int *>;
257 using V = std::variant<int, MakeEmptyT>;
263 using V = std::variant<int, MakeEmptyT>;
264 using V2 = std::variant<long, std::string, void *>;
271 using V = std::variant<int, MakeEmptyT>;
272 using V2 = std::variant<long, std::string, void *>;
279 using V = std::variant<int, MakeEmptyT>;
280 using V2 = std::variant<long, std::string, void *, MakeEmptyT>;
288 using V = std::variant<int, long, double, MakeEmptyT>;
294 using V = std::variant<int, long, double, long long, MakeEmptyT>;
311 std::variant<A> v;
315 struct MyVariant : std::variant<short, long, float> {};
340 struct EvilVariant1 : std::variant<int, long, double>,
343 using std::variant<int, long, double>::variant;
349 // Check that visit unambiguously picks the variant, even if the other base has __impl member.
358 struct EvilVariant2 : std::variant<int, long, double>, ImplVariantBase {
359 using std::variant<int, long, double>::variant;
383 struct BadVariant : std::variant<short>, std::variant<long, float> {};
384 struct BadVariant2 : private std::variant<long, float> {};
385 struct GoodVariant : std::variant<long, float> {};
391 static_assert(has_visit<std::variant<int>>(0));