mirror of
https://github.com/msgpack/msgpack-c.git
synced 2025-10-14 15:05:37 +02:00
Reverted msgpack::move() on the C++03. Const-correntness isn't broken now.
Implemented msgpack::object_handle using the same design pattern as std::auto_ptr and std::auto_ptr_ref. Minimized the uses of #if defined(MSGPACK_USE_CPP03) conditional macro.
This commit is contained in:
@@ -346,11 +346,13 @@ TEST(object, clone_int)
|
||||
int v = 0;
|
||||
msgpack::object obj(v);
|
||||
std::size_t sz1 = msgpack::aligned_zone_size(obj);
|
||||
#if defined(MSGPACK_USE_CPP03)
|
||||
msgpack::object_handle h = msgpack::move(msgpack::clone(obj));
|
||||
#else // defined(MSGPACK_USE_CPP03)
|
||||
msgpack::object_handle h = msgpack::clone(obj);
|
||||
#endif // defined(MSGPACK_USE_CPP03)
|
||||
EXPECT_EQ(h.get(), obj);
|
||||
EXPECT_EQ(sz1, msgpack::aligned_zone_size(h.get()));
|
||||
h = msgpack::clone(obj);
|
||||
EXPECT_EQ(h.get(), obj);
|
||||
EXPECT_EQ(sz1, msgpack::aligned_zone_size(h.get()));
|
||||
h = h;
|
||||
EXPECT_EQ(h.get(), obj);
|
||||
EXPECT_EQ(sz1, msgpack::aligned_zone_size(h.get()));
|
||||
}
|
||||
@@ -361,11 +363,13 @@ TEST(object, clone_str)
|
||||
std::string v = "123456789";
|
||||
msgpack::object obj(v, z);
|
||||
std::size_t sz1 = msgpack::aligned_zone_size(obj);
|
||||
#if defined(MSGPACK_USE_CPP03)
|
||||
msgpack::object_handle h = msgpack::move(msgpack::clone(obj));
|
||||
#else // defined(MSGPACK_USE_CPP03)
|
||||
msgpack::object_handle h = msgpack::clone(obj);
|
||||
#endif // defined(MSGPACK_USE_CPP03)
|
||||
EXPECT_EQ(h.get(), obj);
|
||||
EXPECT_EQ(sz1, msgpack::aligned_zone_size(h.get()));
|
||||
h = msgpack::clone(obj);
|
||||
EXPECT_EQ(h.get(), obj);
|
||||
EXPECT_EQ(sz1, msgpack::aligned_zone_size(h.get()));
|
||||
h = h;
|
||||
EXPECT_EQ(h.get(), obj);
|
||||
EXPECT_EQ(sz1, msgpack::aligned_zone_size(h.get()));
|
||||
}
|
||||
@@ -379,11 +383,13 @@ TEST(object, clone_bin)
|
||||
v.push_back('C');
|
||||
msgpack::object obj(v, z);
|
||||
std::size_t sz1 = msgpack::aligned_zone_size(obj);
|
||||
#if defined(MSGPACK_USE_CPP03)
|
||||
msgpack::object_handle h = msgpack::move(msgpack::clone(obj));
|
||||
#else // defined(MSGPACK_USE_CPP03)
|
||||
msgpack::object_handle h = msgpack::clone(obj);
|
||||
#endif // defined(MSGPACK_USE_CPP03)
|
||||
EXPECT_EQ(h.get(), obj);
|
||||
EXPECT_EQ(sz1, msgpack::aligned_zone_size(h.get()));
|
||||
h = msgpack::clone(obj);
|
||||
EXPECT_EQ(h.get(), obj);
|
||||
EXPECT_EQ(sz1, msgpack::aligned_zone_size(h.get()));
|
||||
h = h;
|
||||
EXPECT_EQ(h.get(), obj);
|
||||
EXPECT_EQ(sz1, msgpack::aligned_zone_size(h.get()));
|
||||
}
|
||||
@@ -397,11 +403,13 @@ TEST(object, clone_array)
|
||||
v.push_back(3);
|
||||
msgpack::object obj(v, z);
|
||||
std::size_t sz1 = msgpack::aligned_zone_size(obj);
|
||||
#if defined(MSGPACK_USE_CPP03)
|
||||
msgpack::object_handle h = msgpack::move(msgpack::clone(obj));
|
||||
#else // defined(MSGPACK_USE_CPP03)
|
||||
msgpack::object_handle h = msgpack::clone(obj);
|
||||
#endif // defined(MSGPACK_USE_CPP03)
|
||||
EXPECT_EQ(h.get(), obj);
|
||||
EXPECT_EQ(sz1, msgpack::aligned_zone_size(h.get()));
|
||||
h = msgpack::clone(obj);
|
||||
EXPECT_EQ(h.get(), obj);
|
||||
EXPECT_EQ(sz1, msgpack::aligned_zone_size(h.get()));
|
||||
h = h;
|
||||
EXPECT_EQ(h.get(), obj);
|
||||
EXPECT_EQ(sz1, msgpack::aligned_zone_size(h.get()));
|
||||
}
|
||||
@@ -415,11 +423,13 @@ TEST(object, clone_map)
|
||||
v.insert(std::map<int, std::string>::value_type(3, "GHI"));
|
||||
msgpack::object obj(v, z);
|
||||
std::size_t sz1 = msgpack::aligned_zone_size(obj);
|
||||
#if defined(MSGPACK_USE_CPP03)
|
||||
msgpack::object_handle h = msgpack::move(msgpack::clone(obj));
|
||||
#else // defined(MSGPACK_USE_CPP03)
|
||||
msgpack::object_handle h = msgpack::clone(obj);
|
||||
#endif // defined(MSGPACK_USE_CPP03)
|
||||
EXPECT_EQ(h.get(), obj);
|
||||
EXPECT_EQ(sz1, msgpack::aligned_zone_size(h.get()));
|
||||
h = msgpack::clone(obj);
|
||||
EXPECT_EQ(h.get(), obj);
|
||||
EXPECT_EQ(sz1, msgpack::aligned_zone_size(h.get()));
|
||||
h = h;
|
||||
EXPECT_EQ(h.get(), obj);
|
||||
EXPECT_EQ(sz1, msgpack::aligned_zone_size(h.get()));
|
||||
}
|
||||
|
Reference in New Issue
Block a user