Added zero size tuple support.

This commit is contained in:
Takatoshi Kondo
2014-09-14 20:50:57 +09:00
parent 0335df55e1
commit 6e810df2a4
5 changed files with 105 additions and 0 deletions

View File

@@ -188,6 +188,33 @@ TEST(MSGPACK_STL, simple_buffer_multiset)
}
}
TEST(MSGPACK_TUPLE, simple_tuple)
{
msgpack::sbuffer sbuf;
msgpack::type::tuple<bool, std::string, double> val1(true, "kzk", 12.3);
msgpack::pack(sbuf, val1);
msgpack::unpacked ret;
msgpack::unpack(ret, sbuf.data(), sbuf.size());
msgpack::type::tuple<bool, std::string, double> val2
= ret.get().as<msgpack::type::tuple<bool, std::string, double> >();
EXPECT_EQ(ret.get().via.array.size, 3);
EXPECT_EQ(val1.get<0>(), val2.get<0>());
EXPECT_EQ(val1.get<1>(), val2.get<1>());
EXPECT_EQ(val1.get<2>(), val2.get<2>());
}
TEST(MSGPACK_TUPLE, simple_tuple_empty)
{
msgpack::sbuffer sbuf;
msgpack::type::tuple<> val1;
msgpack::pack(sbuf, val1);
msgpack::unpacked ret;
msgpack::unpack(ret, sbuf.data(), sbuf.size());
ret.get().as<msgpack::type::tuple<> >();
EXPECT_EQ(ret.get().via.array.size, 0);
}
// TR1
#ifdef MSGPACK_HAS_STD_TR1_UNOURDERED_MAP