@@ -17,7 +17,20 @@ TEST(MSGPACK_REFERENCE_WRAPPER, pack_convert)
1717    msgpack::object_handle oh = msgpack::unpack (ss.str ().data (), ss.str ().size ());
1818    int  i2 = 0 ;
1919    std::reference_wrapper<int > val2 (i2);
20-     oh.get ().convert (val2);;
20+     oh.get ().convert (val2);
21+     EXPECT_EQ (i1, i2);
22+ }
23+ 
24+ TEST (MSGPACK_REFERENCE_WRAPPER, pack_convert_const)
25+ {
26+     const  int  i1 = 42 ;
27+     std::reference_wrapper<const  int > val1 (i1);
28+     std::stringstream ss;
29+     msgpack::pack (ss, val1);
30+     msgpack::object_handle oh = msgpack::unpack (ss.str ().data (), ss.str ().size ());
31+     int  i2 = 0 ;
32+     std::reference_wrapper<int > val2 (i2);
33+     oh.get ().convert (val2);
2134    EXPECT_EQ (i1, i2);
2235}
2336
@@ -44,6 +57,17 @@ TEST(MSGPACK_REFERENCE_WRAPPER, object)
4457    EXPECT_EQ (i1, i2);
4558}
4659
60+ TEST (MSGPACK_REFERENCE_WRAPPER, object_const)
61+ {
62+     const  int  i1 = 42 ;
63+     std::reference_wrapper<const  int > val1 (i1);
64+     msgpack::object o (val1);
65+     int  i2 = 0 ;
66+     std::reference_wrapper<int > val2 (i2);
67+     o.convert (val2);
68+     EXPECT_EQ (i1, i2);
69+ }
70+ 
4771TEST (MSGPACK_REFERENCE_WRAPPER, object_with_zone)
4872{
4973    std::string s1 = " ABC"  ;
@@ -56,4 +80,16 @@ TEST(MSGPACK_REFERENCE_WRAPPER, object_with_zone)
5680    EXPECT_EQ (s1, s2);
5781}
5882
83+ TEST (MSGPACK_REFERENCE_WRAPPER, object_with_zone_const)
84+ {
85+     const  std::string s1 = " ABC"  ;
86+     std::reference_wrapper<const  std::string> val1 (s1);
87+     msgpack::zone z;
88+     msgpack::object o (val1, z);
89+     std::string s2 = " DE"  ;
90+     std::reference_wrapper<std::string> val2 (s2);
91+     o.convert (val2);
92+     EXPECT_EQ (s1, s2);
93+ }
94+ 
5995#endif  //  !defined(MSGPACK_USE_CPP03)
0 commit comments