messagepack implementation for embedded systems (mbed / arduino)

Dependents:   hello_message_pack

msgpack-c & msgpack-c++ https://github.com/msgpack/msgpack-c implementation for embedded systems (mbed / Arduino)

Committer:
hideakitai
Date:
Sat Feb 13 01:53:11 2016 +0000
Revision:
0:3f9dbf1e2cb0
first commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hideakitai 0:3f9dbf1e2cb0 1 //
hideakitai 0:3f9dbf1e2cb0 2 // MessagePack for C++ static resolution routine
hideakitai 0:3f9dbf1e2cb0 3 //
hideakitai 0:3f9dbf1e2cb0 4 // Copyright (C) 2015 KONDO Takatoshi
hideakitai 0:3f9dbf1e2cb0 5 //
hideakitai 0:3f9dbf1e2cb0 6 // Distributed under the Boost Software License, Version 1.0.
hideakitai 0:3f9dbf1e2cb0 7 // (See accompanying file LICENSE_1_0.txt or copy at
hideakitai 0:3f9dbf1e2cb0 8 // http://www.boost.org/LICENSE_1_0.txt)
hideakitai 0:3f9dbf1e2cb0 9 //
hideakitai 0:3f9dbf1e2cb0 10
hideakitai 0:3f9dbf1e2cb0 11 #ifndef MSGPACK_META_HPP
hideakitai 0:3f9dbf1e2cb0 12 #define MSGPACK_META_HPP
hideakitai 0:3f9dbf1e2cb0 13
hideakitai 0:3f9dbf1e2cb0 14 #if !defined(MSGPACK_USE_CPP03)
hideakitai 0:3f9dbf1e2cb0 15
hideakitai 0:3f9dbf1e2cb0 16 #include <type_traits>
hideakitai 0:3f9dbf1e2cb0 17
hideakitai 0:3f9dbf1e2cb0 18 namespace msgpack {
hideakitai 0:3f9dbf1e2cb0 19
hideakitai 0:3f9dbf1e2cb0 20 /// @cond
hideakitai 0:3f9dbf1e2cb0 21 MSGPACK_API_VERSION_NAMESPACE(v1) {
hideakitai 0:3f9dbf1e2cb0 22 /// @endcond
hideakitai 0:3f9dbf1e2cb0 23
hideakitai 0:3f9dbf1e2cb0 24 namespace detail {
hideakitai 0:3f9dbf1e2cb0 25 template<bool...> struct bool_pack;
hideakitai 0:3f9dbf1e2cb0 26
hideakitai 0:3f9dbf1e2cb0 27 template<bool...values> struct all_of_imp
hideakitai 0:3f9dbf1e2cb0 28 : std::is_same<bool_pack<values..., true>, bool_pack<true, values...>>{};
hideakitai 0:3f9dbf1e2cb0 29
hideakitai 0:3f9dbf1e2cb0 30 } // namespace detail
hideakitai 0:3f9dbf1e2cb0 31
hideakitai 0:3f9dbf1e2cb0 32 template<template <class> class T, class... U>
hideakitai 0:3f9dbf1e2cb0 33 using all_of = detail::all_of_imp<T<U>::value...>;
hideakitai 0:3f9dbf1e2cb0 34
hideakitai 0:3f9dbf1e2cb0 35 template<std::size_t... Is> struct seq {};
hideakitai 0:3f9dbf1e2cb0 36
hideakitai 0:3f9dbf1e2cb0 37 template<std::size_t N, std::size_t... Is>
hideakitai 0:3f9dbf1e2cb0 38 struct gen_seq : gen_seq<N-1, N-1, Is...> {};
hideakitai 0:3f9dbf1e2cb0 39
hideakitai 0:3f9dbf1e2cb0 40 template<std::size_t... Is>
hideakitai 0:3f9dbf1e2cb0 41 struct gen_seq<0, Is...> : seq<Is...> {};
hideakitai 0:3f9dbf1e2cb0 42
hideakitai 0:3f9dbf1e2cb0 43 /// @cond
hideakitai 0:3f9dbf1e2cb0 44 } // MSGPACK_API_VERSION_NAMESPACE(v1)
hideakitai 0:3f9dbf1e2cb0 45 /// @endcond
hideakitai 0:3f9dbf1e2cb0 46
hideakitai 0:3f9dbf1e2cb0 47 } // namespace msgpack
hideakitai 0:3f9dbf1e2cb0 48
hideakitai 0:3f9dbf1e2cb0 49 #endif // !defined(MSGPACK_USE_CPP03)
hideakitai 0:3f9dbf1e2cb0 50
hideakitai 0:3f9dbf1e2cb0 51 #endif // MSGPACK_META_HPP