implement as and pack for std::variant

This commit is contained in:
Uy Ha
2023-07-03 13:37:37 +00:00
parent ac062e28cb
commit 327f3d1ad0
4 changed files with 164 additions and 0 deletions

View File

@@ -461,4 +461,15 @@ BOOST_AUTO_TEST_CASE(carray_byte_object_with_zone)
}
}
BOOST_AUTO_TEST_CASE(variant_as) {
std::stringstream ss;
std::variant<bool, int, float, double> val1{1.0};
msgpack::pack(ss, val1);
std::string const& str = ss.str();
msgpack::object_handle oh =
msgpack::unpack(str.data(), str.size());
std::variant<bool, int, float, double> val2 = oh.get().as<std::variant<bool, int, float, double> >();
BOOST_CHECK(val1 == val2);
}
#endif // MSGPACK_CPP_VERSION >= 201703