@@ -1282,36 +1282,36 @@ namespace eastl
12821282
12831283 };
12841284
1285-
1286- // abstracts calling visit on a single variant with return types convertible to R
1287- struct visitor_caller_one_r
1285+ template <typename R>
1286+ struct visitor_r
12881287 {
1289- template <typename R >
1290- struct visitor_r
1288+ template <typename Visitor, typename Variant, size_t I >
1289+ static EA_CONSTEXPR R invoke_visitor_r (Visitor&& visitor, Variant&& variant)
12911290 {
1292- template <typename Visitor, typename Variant, size_t I>
1293- static EA_CONSTEXPR R invoke_visitor_r (Visitor&& visitor, Variant&& variant)
1294- {
1295- return eastl::invoke (eastl::forward<Visitor>(visitor),
1296- eastl::get<I>(eastl::forward<Variant>(variant)));
1297- }
1298- };
1291+ return eastl::invoke (eastl::forward<Visitor>(visitor),
1292+ eastl::get<I>(eastl::forward<Variant>(variant)));
1293+ }
1294+ };
12991295
1300- // void return type must discard the return values of the visitor even if the visitor returns a value.
1301- template <>
1302- struct visitor_r <void >
1296+ // void return type must discard the return values of the visitor even if the visitor returns a value.
1297+ template <>
1298+ struct visitor_r <void >
1299+ {
1300+ template <typename Visitor, typename Variant, size_t I>
1301+ static EA_CONSTEXPR void invoke_visitor_r (Visitor&& visitor, Variant&& variant)
13031302 {
1304- template <typename Visitor, typename Variant, size_t I>
1305- static EA_CONSTEXPR void invoke_visitor_r (Visitor&& visitor, Variant&& variant)
1306- {
1307- eastl::invoke (eastl::forward<Visitor>(visitor),
1308- eastl::get<I>(eastl::forward<Variant>(variant)));
1309- }
1310- };
1311- template <> struct visitor_r <const void > : public visitor_r<void > {};
1312- template <> struct visitor_r <volatile void > : public visitor_r<void > {};
1313- template <> struct visitor_r <const volatile void > : public visitor_r<void > {};
1303+ eastl::invoke (eastl::forward<Visitor>(visitor),
1304+ eastl::get<I>(eastl::forward<Variant>(variant)));
1305+ }
1306+ };
1307+
1308+ template <> struct visitor_r <const void > : public visitor_r<void > {};
1309+ template <> struct visitor_r <volatile void > : public visitor_r<void > {};
1310+ template <> struct visitor_r <const volatile void > : public visitor_r<void > {};
13141311
1312+ // abstracts calling visit on a single variant with return types convertible to R
1313+ struct visitor_caller_one_r
1314+ {
13151315 template <typename R, typename Visitor, typename Variant, size_t ... VariantArgIndices>
13161316 static EA_CPP14_CONSTEXPR decltype (auto ) call_index_r(Visitor&& visitor, Variant&& variant, eastl::index_sequence<VariantArgIndices...>)
13171317 {
0 commit comments