diff options
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.hpp | 45 |
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 |