summaryrefslogtreecommitdiffstats
path: root/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_convert_helper.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_convert_helper.hpp')
-rw-r--r--third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_convert_helper.hpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_convert_helper.hpp b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_convert_helper.hpp
new file mode 100644
index 0000000000..f9e29ea61a
--- /dev/null
+++ b/third_party/msgpack/include/msgpack/v1/adaptor/detail/cpp11_convert_helper.hpp
@@ -0,0 +1,45 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2017 KONDO Takatoshi
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef MSGPACK_V1_CPP11_CONVERT_HELPER_HPP
+#define MSGPACK_V1_CPP11_CONVERT_HELPER_HPP
+
+#include <tuple>
+
+#include <msgpack/object_fwd.hpp>
+
+namespace msgpack {
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+namespace type {
+
+template <typename T>
+inline typename std::enable_if<
+ has_as<T>::value
+>::type
+convert_helper(msgpack::object const& o, T& t) {
+ t = o.as<T>();
+}
+template <typename T>
+inline typename std::enable_if<
+ !has_as<T>::value
+>::type
+convert_helper(msgpack::object const& o, T& t) {
+ o.convert(t);
+}
+
+} // namespace type
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+} // namespace msgpack
+
+#endif // MSGPACK_V1_CPP11_CONVERT_HELPER_HPP