From df5f84d49dd3fb3f016933ed8ca4038f67e81be5 Mon Sep 17 00:00:00 2001 From: Takatoshi Kondo Date: Sun, 30 Aug 2015 13:08:00 +0900 Subject: [PATCH] Added totally ordered. --- include/msgpack/adaptor/boost/msgpack_variant.hpp | 6 ++++-- test/boost_variant.cpp | 6 ++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/include/msgpack/adaptor/boost/msgpack_variant.hpp b/include/msgpack/adaptor/boost/msgpack_variant.hpp index 10b7ca55..65ff7777 100644 --- a/include/msgpack/adaptor/boost/msgpack_variant.hpp +++ b/include/msgpack/adaptor/boost/msgpack_variant.hpp @@ -37,6 +37,7 @@ #include "msgpack/adaptor/map.hpp" #include +#include namespace msgpack { @@ -70,7 +71,7 @@ typedef boost::variant< } // namespace detail -struct variant : detail::variant_imp { +struct variant : detail::variant_imp, private boost::totally_ordered { typedef detail::variant_imp base; variant() {} template @@ -115,6 +116,7 @@ inline bool operator==(variant const& lhs, variant const& rhs) { return static_cast(lhs) == static_cast(rhs); } + struct variant_ref; namespace detail { @@ -139,7 +141,7 @@ typedef boost::variant< } // namespace detail -struct variant_ref : detail::variant_ref_imp { +struct variant_ref : detail::variant_ref_imp, private boost::totally_ordered { typedef detail::variant_ref_imp base; variant_ref() {} template diff --git a/test/boost_variant.cpp b/test/boost_variant.cpp index 50140f3b..d84cff21 100644 --- a/test/boost_variant.cpp +++ b/test/boost_variant.cpp @@ -87,6 +87,12 @@ TEST(MSGPACK_BOOST, pack_convert_variant_bool) msgpack::type::variant val2 = ret.get().as(); EXPECT_NO_THROW(boost::get(val2)); EXPECT_TRUE(val1 == val2); + // Tests for totally ordered + EXPECT_FALSE(val1 != val2); + EXPECT_FALSE(val1 < val2); + EXPECT_FALSE(val1 > val2); + EXPECT_TRUE(val1 <= val2); + EXPECT_TRUE(val1 >= val2); } TEST(MSGPACK_BOOST, object_variant_bool)