2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-08 19:44:55 +00:00

Fix TypedVariant building with MSVC

This commit is contained in:
Jack Andersen
2019-10-18 15:31:54 -10:00
parent 3506ee1796
commit dfcad01c2f
3 changed files with 7 additions and 7 deletions

2
hecl/extern/athena vendored

Submodule hecl/extern/athena updated: ee012692ba...03f9314a2a

2
hecl/extern/boo vendored

Submodule hecl/extern/boo updated: 314563614e...a7a02b0c5e

View File

@@ -207,7 +207,7 @@ private:
template <> \ template <> \
inline void hecl::TypedVariantBigDNA<__VA_ARGS__>::Enumerate<athena::io::DNA<athena::Endian::Big>::Read>( \ inline void hecl::TypedVariantBigDNA<__VA_ARGS__>::Enumerate<athena::io::DNA<athena::Endian::Big>::Read>( \
typename Read::StreamT & r) { \ typename Read::StreamT & r) { \
EnumType variant_type = {}; \ hecl::TypedVariant<__VA_ARGS__>::EnumType variant_type = {}; \
Do<athena::io::DNA<athena::Endian::Big>::Read>(athena::io::PropId("variant_type"sv), variant_type, r); \ Do<athena::io::DNA<athena::Endian::Big>::Read>(athena::io::PropId("variant_type"sv), variant_type, r); \
static_cast<TypedVariant<__VA_ARGS__>&>(*this) = Build(variant_type); \ static_cast<TypedVariant<__VA_ARGS__>&>(*this) = Build(variant_type); \
visit([&](auto& var) { var.read(r); }); \ visit([&](auto& var) { var.read(r); }); \
@@ -219,7 +219,7 @@ private:
typename Write::StreamT & w) { \ typename Write::StreamT & w) { \
visit([&](auto& var) { \ visit([&](auto& var) { \
using T = std::decay_t<decltype(var)>; \ using T = std::decay_t<decltype(var)>; \
EnumType variant_type = T::variant_type(); \ hecl::TypedVariant<__VA_ARGS__>::EnumType variant_type = T::variant_type(); \
Do<athena::io::DNA<athena::Endian::Big>::Write>(athena::io::PropId("variant_type"sv), variant_type, w); \ Do<athena::io::DNA<athena::Endian::Big>::Write>(athena::io::PropId("variant_type"sv), variant_type, w); \
var.write(w); \ var.write(w); \
}); \ }); \
@@ -231,7 +231,7 @@ private:
typename BinarySize::StreamT & sz) { \ typename BinarySize::StreamT & sz) { \
visit([&](auto& var) { \ visit([&](auto& var) { \
using T = std::decay_t<decltype(var)>; \ using T = std::decay_t<decltype(var)>; \
EnumType variant_type = T::variant_type(); \ hecl::TypedVariant<__VA_ARGS__>::EnumType variant_type = T::variant_type(); \
Do<athena::io::DNA<athena::Endian::Big>::BinarySize>(athena::io::PropId("variant_type"sv), variant_type, sz); \ Do<athena::io::DNA<athena::Endian::Big>::BinarySize>(athena::io::PropId("variant_type"sv), variant_type, sz); \
var.binarySize(sz); \ var.binarySize(sz); \
}); \ }); \
@@ -247,7 +247,7 @@ private:
template <> \ template <> \
inline void hecl::TypedVariantBigDNA<__VA_ARGS__>::Enumerate<athena::io::DNA<athena::Endian::Big>::ReadYaml>( \ inline void hecl::TypedVariantBigDNA<__VA_ARGS__>::Enumerate<athena::io::DNA<athena::Endian::Big>::ReadYaml>( \
typename ReadYaml::StreamT & r) { \ typename ReadYaml::StreamT & r) { \
EnumType variant_type = {}; \ hecl::TypedVariant<__VA_ARGS__>::EnumType variant_type = {}; \
Do<athena::io::DNA<athena::Endian::Big>::ReadYaml>(athena::io::PropId("variant_type"sv), variant_type, r); \ Do<athena::io::DNA<athena::Endian::Big>::ReadYaml>(athena::io::PropId("variant_type"sv), variant_type, r); \
static_cast<TypedVariant<__VA_ARGS__>&>(*this) = Build(variant_type); \ static_cast<TypedVariant<__VA_ARGS__>&>(*this) = Build(variant_type); \
visit([&](auto& var) { var.read(r); }); \ visit([&](auto& var) { var.read(r); }); \
@@ -259,7 +259,7 @@ private:
typename WriteYaml::StreamT & w) { \ typename WriteYaml::StreamT & w) { \
visit([&](auto& var) { \ visit([&](auto& var) { \
using T = std::decay_t<decltype(var)>; \ using T = std::decay_t<decltype(var)>; \
EnumType variant_type = T::variant_type(); \ hecl::TypedVariant<__VA_ARGS__>::EnumType variant_type = T::variant_type(); \
Do<athena::io::DNA<athena::Endian::Big>::WriteYaml>(athena::io::PropId("variant_type"sv), variant_type, w); \ Do<athena::io::DNA<athena::Endian::Big>::WriteYaml>(athena::io::PropId("variant_type"sv), variant_type, w); \
var.write(w); \ var.write(w); \
}); \ }); \