diff --git a/CMakeLists.txt b/CMakeLists.txt index f59968e3..c1a572b5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,6 +14,8 @@ SET (prefix ${CMAKE_INSTALL_PREFIX}) SET (exec_prefix "\${prefix}") SET (libdir "\${exec_prefix}/lib") SET (includedir "\${prefix}/include") +SET (GNUCXX_STD_SUPPORT_VERSION "4.3") +SET (GNUCXX_NO_MISMATCHED_TAGS_SUPPORT_VERSION "4.4") OPTION (MSGPACK_CXX11 "Using c++11 compiler" OFF) OPTION (MSGPACK_32BIT "32bit compile" OFF) @@ -43,7 +45,10 @@ IF (MSGPACK_CXX11) ENDIF () ELSE () IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - SET (CMAKE_CXX_FLAGS "-std=c++03 ${CMAKE_CXX_FLAGS}") + IF ((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER ${GNUCXX_STD_SUPPORT_VERSION}) OR + (CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL ${GNUCXX_STD_SUPPORT_VERSION})) + SET (CMAKE_CXX_FLAGS "-std=c++03 ${CMAKE_CXX_FLAGS}") + ENDIF () ELSEIF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") SET (CMAKE_CXX_FLAGS "-std=c++03 ${CMAKE_CXX_FLAGS}") ELSEIF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") @@ -278,10 +283,22 @@ ENDIF () IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") IF (MSGPACK_ENABLE_SHARED) - SET_PROPERTY (TARGET msgpack APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Wno-mismatched-tags -Werror -g -O3 -DPIC") + SET_PROPERTY (TARGET msgpack APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3 -DPIC") ENDIF () - SET_PROPERTY (TARGET msgpack-static APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Wno-mismatched-tags -Werror -g -O3" ) + SET_PROPERTY (TARGET msgpack-static APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3" ) ENDIF () + +IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + SET_PROPERTY (TARGET msgpack APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags") +ENDIF () + +IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + IF ((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER ${GNUCXX_NO_MISMATCHED_TAGS_SUPPORT_VERSION}) OR + (CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL ${GNUCXX_NO_MISMATCHED_TAGS_SUPPORT_VERSION})) + SET_PROPERTY (TARGET msgpack APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags") + ENDIF () +ENDIF () + IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") IF (CMAKE_CXX_FLAGS MATCHES "/W[0-4]") STRING(REGEX REPLACE "/W[0-4]" "/W3 /WX" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") diff --git a/example/boost/CMakeLists.txt b/example/boost/CMakeLists.txt index 57a31acc..46eb04bc 100644 --- a/example/boost/CMakeLists.txt +++ b/example/boost/CMakeLists.txt @@ -12,8 +12,20 @@ FOREACH (source_file ${exec_PROGRAMS}) ${source_file} ) IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -Wno-mismatched-tags -g -O3") + SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3") ENDIF () + + IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags") + ENDIF () + + IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + IF ((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER ${GNUCXX_NO_MISMATCHED_TAGS_SUPPORT_VERSION}) OR + (CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL ${GNUCXX_NO_MISMATCHED_TAGS_SUPPORT_VERSION})) + SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags") + ENDIF () + ENDIF () + IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") IF (CMAKE_CXX_FLAGS MATCHES "/W[0-4]") STRING(REGEX REPLACE "/W[0-4]" "/W3 /WX" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") diff --git a/example/c/CMakeLists.txt b/example/c/CMakeLists.txt index ab337dba..31513b01 100644 --- a/example/c/CMakeLists.txt +++ b/example/c/CMakeLists.txt @@ -20,8 +20,20 @@ FOREACH (source_file ${exec_PROGRAMS}) msgpack ) IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -Wno-mismatched-tags -g -O3") + SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3") ENDIF () + + IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags") + ENDIF () + + IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + IF ((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER ${GNUCXX_NO_MISMATCHED_TAGS_SUPPORT_VERSION}) OR + (CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL ${GNUCXX_NO_MISMATCHED_TAGS_SUPPORT_VERSION})) + SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags") + ENDIF () + ENDIF () + IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") IF (CMAKE_CXX_FLAGS MATCHES "/W[0-4]") STRING(REGEX REPLACE "/W[0-4]" "/W3 /WX" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") diff --git a/example/cpp03/CMakeLists.txt b/example/cpp03/CMakeLists.txt index 6c384fa7..1e5c02a2 100644 --- a/example/cpp03/CMakeLists.txt +++ b/example/cpp03/CMakeLists.txt @@ -33,7 +33,7 @@ FOREACH (source_file ${exec_PROGRAMS}) ${source_file} ) IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -Wno-mismatched-tags -g -O3") + SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3") ENDIF () IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") IF (CMAKE_CXX_FLAGS MATCHES "/W[0-4]") @@ -54,7 +54,7 @@ FOREACH (source_file ${with_pthread_PROGRAMS}) pthread ) IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -Wno-mismatched-tags -g -O3 -pthread") + SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3 -pthread") ENDIF () IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") IF (CMAKE_CXX_FLAGS MATCHES "/W[0-4]") @@ -86,9 +86,22 @@ FOREACH (source_file ${with_boost_lib_PROGRAMS}) rt ) ENDIF () + IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -Wno-mismatched-tags -g -O3") + SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -O3") ENDIF () + + IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags") + ENDIF () + + IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + IF ((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER ${GNUCXX_NO_MISMATCHED_TAGS_SUPPORT_VERSION}) OR + (CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL ${GNUCXX_NO_MISMATCHED_TAGS_SUPPORT_VERSION})) + SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags") + ENDIF () + ENDIF () + IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") IF (CMAKE_CXX_FLAGS MATCHES "/W[0-4]") STRING(REGEX REPLACE "/W[0-4]" "/W3 /WX" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") diff --git a/example/cpp11/CMakeLists.txt b/example/cpp11/CMakeLists.txt index 25211ea3..4ddd4f62 100644 --- a/example/cpp11/CMakeLists.txt +++ b/example/cpp11/CMakeLists.txt @@ -15,8 +15,20 @@ IF (MSGPACK_CXX11) ${source_file} ) IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -Wno-mismatched-tags -g -O3") + SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3 ") ENDIF () + + IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags") + ENDIF () + + IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + IF ((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER ${GNUCXX_NO_MISMATCHED_TAGS_SUPPORT_VERSION}) OR + (CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL ${GNUCXX_NO_MISMATCHED_TAGS_SUPPORT_VERSION})) + SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags") + ENDIF () + ENDIF () + IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") IF (CMAKE_CXX_FLAGS MATCHES "/W[0-4]") STRING(REGEX REPLACE "/W[0-4]" "/W3 /WX" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 6c0f3202..3eca7683 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -75,8 +75,19 @@ FOREACH (source_file ${check_PROGRAMS}) ) ADD_TEST (${source_file_we} ${source_file_we}) IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -Wno-mismatched-tags -g -O3") + SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3 ") ENDIF () + IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags") + ENDIF () + + IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + IF ((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER ${GNUCXX_NO_MISMATCHED_TAGS_SUPPORT_VERSION}) OR + (CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL ${GNUCXX_NO_MISMATCHED_TAGS_SUPPORT_VERSION})) + SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-mismatched-tags") + ENDIF () + ENDIF () + IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") IF (CMAKE_CXX_FLAGS MATCHES "/W[0-4] /WX") STRING(REGEX REPLACE "/W[0-4]" "/W3 /WX" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") diff --git a/test/boost_variant.cpp b/test/boost_variant.cpp index abc574ce..f8d2e8b8 100644 --- a/test/boost_variant.cpp +++ b/test/boost_variant.cpp @@ -147,7 +147,7 @@ TEST(MSGPACK_BOOST, pack_convert_variant_positive_integer) std::stringstream ss; msgpack::type::variant val1 = 123; EXPECT_TRUE(val1.is_uint64_t()); - EXPECT_EQ(val1.as_uint64_t(), 123); + EXPECT_EQ(val1.as_uint64_t(), 123U); msgpack::pack(ss, val1); @@ -155,7 +155,7 @@ TEST(MSGPACK_BOOST, pack_convert_variant_positive_integer) msgpack::unpack(ret, ss.str().data(), ss.str().size()); msgpack::type::variant val2 = ret.get().as(); EXPECT_TRUE(val2.is_uint64_t()); - EXPECT_EQ(val2.as_uint64_t(), 123); + EXPECT_EQ(val2.as_uint64_t(), 123U); EXPECT_NO_THROW(boost::get(val2)); EXPECT_TRUE(val1 == val2); } @@ -164,11 +164,11 @@ TEST(MSGPACK_BOOST, object_variant_positive_integer) { msgpack::type::variant val1 = 123; EXPECT_TRUE(val1.is_uint64_t()); - EXPECT_EQ(val1.as_uint64_t(), 123); + EXPECT_EQ(val1.as_uint64_t(), 123U); msgpack::object obj(val1); msgpack::type::variant val2 = obj.as(); EXPECT_TRUE(val2.is_uint64_t()); - EXPECT_EQ(val2.as_uint64_t(), 123); + EXPECT_EQ(val2.as_uint64_t(), 123U); EXPECT_NO_THROW(boost::get(val2)); EXPECT_TRUE(val1 == val2); } @@ -178,11 +178,11 @@ TEST(MSGPACK_BOOST, object_with_zone_variant_positive_integer) msgpack::zone z; msgpack::type::variant val1 = 123; EXPECT_TRUE(val1.is_uint64_t()); - EXPECT_EQ(val1.as_uint64_t(), 123); + EXPECT_EQ(val1.as_uint64_t(), 123U); msgpack::object obj(val1, z); msgpack::type::variant val2 = obj.as(); EXPECT_TRUE(val2.is_uint64_t()); - EXPECT_EQ(val2.as_uint64_t(), 123); + EXPECT_EQ(val2.as_uint64_t(), 123U); EXPECT_NO_THROW(boost::get(val2)); EXPECT_TRUE(val1 == val2); } diff --git a/test/msgpack_basic.cpp b/test/msgpack_basic.cpp index 51bc27d8..15215b2c 100644 --- a/test/msgpack_basic.cpp +++ b/test/msgpack_basic.cpp @@ -408,7 +408,7 @@ TEST(MSGPACK, simple_buffer_fixext_1byte_255) msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); char buf[size]; - for (int i = 0; i != size; ++i) buf[i] = static_cast(i); + for (std::size_t i = 0; i != size; ++i) buf[i] = static_cast(i); packer.pack_ext(sizeof(buf), 77); packer.pack_ext_body(buf, sizeof(buf)); @@ -426,7 +426,7 @@ TEST(MSGPACK, simple_buffer_fixext_2byte_256) msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); char buf[size]; - for (int i = 0; i != size; ++i) buf[i] = static_cast(i); + for (std::size_t i = 0; i != size; ++i) buf[i] = static_cast(i); packer.pack_ext(sizeof(buf), 77); packer.pack_ext_body(buf, sizeof(buf)); @@ -444,7 +444,7 @@ TEST(MSGPACK, simple_buffer_fixext_2byte_65535) msgpack::sbuffer sbuf; msgpack::packer packer(sbuf); char buf[size]; - for (int i = 0; i != size; ++i) buf[i] = static_cast(i); + for (std::size_t i = 0; i != size; ++i) buf[i] = static_cast(i); packer.pack_ext(sizeof(buf), 77); packer.pack_ext_body(buf, sizeof(buf)); diff --git a/test/msgpack_c.cpp b/test/msgpack_c.cpp index 623db8be..3ce5e2bf 100644 --- a/test/msgpack_c.cpp +++ b/test/msgpack_c.cpp @@ -521,7 +521,7 @@ TEST(MSGPACKC, simple_buffer_fixext_1byte_255) { const size_t size = 255; char buf[size]; - for (int i = 0; i != size; ++i) buf[i] = i; + for (size_t i = 0; i != size; ++i) buf[i] = i; msgpack_sbuffer sbuf; msgpack_sbuffer_init(&sbuf); @@ -548,7 +548,7 @@ TEST(MSGPACKC, simple_buffer_fixext_2byte_256) { const size_t size = 256; char buf[size]; - for (int i = 0; i != size; ++i) buf[i] = i; + for (size_t i = 0; i != size; ++i) buf[i] = i; msgpack_sbuffer sbuf; msgpack_sbuffer_init(&sbuf); @@ -575,7 +575,7 @@ TEST(MSGPACKC, simple_buffer_fixext_2byte_65535) { const size_t size = 65535; char buf[size]; - for (int i = 0; i != size; ++i) buf[i] = i; + for (size_t i = 0; i != size; ++i) buf[i] = i; msgpack_sbuffer sbuf; msgpack_sbuffer_init(&sbuf); @@ -602,7 +602,7 @@ TEST(MSGPACKC, simple_buffer_fixext_4byte_65536) { const size_t size = 65536; char buf[size]; - for (int i = 0; i != size; ++i) buf[i] = i; + for (size_t i = 0; i != size; ++i) buf[i] = i; msgpack_sbuffer sbuf; msgpack_sbuffer_init(&sbuf); diff --git a/test/msgpack_container.cpp b/test/msgpack_container.cpp index ef1b85b0..03e8ac92 100644 --- a/test/msgpack_container.cpp +++ b/test/msgpack_container.cpp @@ -146,7 +146,7 @@ TEST(MSGPACK_STL, simple_buffer_assoc_vector) TEST(MSGPACK_STL, simple_buffer_map) { - typedef map, test::allocator > > type; + typedef map, test::allocator > > type; for (unsigned int k = 0; k < kLoop; k++) { type val1; for (unsigned int i = 0; i < kElements; i++) @@ -228,7 +228,7 @@ TEST(MSGPACK_STL, simple_buffer_pair) TEST(MSGPACK_STL, simple_buffer_multimap) { - typedef multimap, test::allocator > > type; + typedef multimap, test::allocator > > type; for (unsigned int k = 0; k < kLoop; k++) { type val1; for (unsigned int i = 0; i < kElements; i++) { @@ -352,7 +352,7 @@ TEST(MSGPACK_TR1, simple_buffer_tr1_unordered_map) TEST(MSGPACK_TR1, simple_buffer_tr1_unordered_multimap) { - typedef tr1::unordered_multimap, test::equal_to, test::allocator > > type; + typedef tr1::unordered_multimap, test::equal_to, test::allocator > > type; for (unsigned int k = 0; k < kLoop; k++) { type val1; for (unsigned int i = 0; i < kElements; i++) { diff --git a/test/object.cpp b/test/object.cpp index 0bbb9c58..4a4074cd 100644 --- a/test/object.cpp +++ b/test/object.cpp @@ -294,7 +294,7 @@ TEST(object, construct_enum) { msgpack::object obj(elem); EXPECT_EQ(msgpack::type::POSITIVE_INTEGER, obj.type); - EXPECT_EQ(elem, obj.via.u64); + EXPECT_EQ(static_cast(elem), obj.via.u64); } #if !defined(MSGPACK_USE_CPP03) @@ -312,7 +312,7 @@ TEST(object, construct_enum_outer) { msgpack::object obj(outer_enum::elem); EXPECT_EQ(msgpack::type::POSITIVE_INTEGER, obj.type); - EXPECT_EQ(elem, obj.via.u64); + EXPECT_EQ(static_cast(elem), obj.via.u64); } #if !defined(MSGPACK_USE_CPP03) diff --git a/test/object_with_zone.cpp b/test/object_with_zone.cpp index 5664c0fd..6b69f20f 100644 --- a/test/object_with_zone.cpp +++ b/test/object_with_zone.cpp @@ -687,7 +687,7 @@ TEST(object_with_zone, construct_enum) msgpack::zone z; msgpack::object obj(elem, z); EXPECT_EQ(msgpack::type::POSITIVE_INTEGER, obj.type); - EXPECT_EQ(elem, obj.via.u64); + EXPECT_EQ(static_cast(elem), obj.via.u64); } #if !defined(MSGPACK_USE_CPP03) @@ -707,7 +707,7 @@ TEST(object_with_zone, construct_enum_outer) msgpack::zone z; msgpack::object obj(outer_enum::elem, z); EXPECT_EQ(msgpack::type::POSITIVE_INTEGER, obj.type); - EXPECT_EQ(elem, obj.via.u64); + EXPECT_EQ(static_cast(elem), obj.via.u64); } // User defined inheriting classes