10 #ifndef MSGPACK_V1_CPP11_MSGPACK_TUPLE_DECL_HPP 
   11 #define MSGPACK_V1_CPP11_MSGPACK_TUPLE_DECL_HPP 
   28     using std::tuple_size;
 
   29     using std::tuple_element;
 
   30     using std::uses_allocator;
 
   34     template <
class... Types>
 
   35     class tuple : 
public std::tuple<Types...> {
 
   37         using base = std::tuple<Types...>;
 
   42         template<
typename... OtherTypes>
 
   43         tuple(OtherTypes&&... other):
base(std::forward<OtherTypes>(other)...) {}
 
   45         template<
typename... OtherTypes>
 
   47         template<
typename... OtherTypes>
 
   53         template<
typename... OtherTypes>
 
   55             *
static_cast<base*
>(
this) = 
static_cast<std::tuple<OtherTypes...
> const&>(other);
 
   58         template<
typename... OtherTypes>
 
   60             *
static_cast<base*
>(
this) = 
static_cast<std::tuple<OtherTypes...
> &&>(other);
 
   64         template<std::
size_t I>
 
   66         get() & noexcept { 
return std::get<I>(
static_cast<base&
>(*
this)); }
 
   68         template<std::
size_t I>
 
   70         get() const& noexcept { 
return std::get<I>(
static_cast<base const&
>(*
this)); }
 
   72         template<std::
size_t I>
 
   74         get() && noexcept { 
return std::get<I>(
static_cast<base&&
>(*
this)); }
 
   76         std::size_t 
size()
 const { 
return sizeof...(Types); }
 
   79     template <
class... Args>
 
   82     template<
class... Args>
 
   85     template <
class... Tuples>
 
   88             std::tuple_cat(std::forward<
typename std::remove_reference<Tuples>::type::base>(args)...)
 
   91     template <
class... Args>
 
   92     tuple<Args&...> 
tie(Args&... args);
 
   97 template <
typename Stream, 
typename Tuple, std::
size_t N>
 
   98 struct MsgpackTuplePacker;
 
  101 template <
typename... Args>
 
  102 struct MsgpackTupleAs;
 
  104 template <
typename T, 
typename... Args>
 
  105 struct MsgpackTupleAsImpl;
 
  107 template <
typename Tuple, std::
size_t N>
 
  108 struct MsgpackTupleConverter;
 
  111 template <
typename Tuple, std::
size_t N>
 
  112 struct MsgpackTupleToObjectWithZone;
 
Definition: cpp11_msgpack_tuple_decl.hpp:35
tuple_element< I, base >::type & get() &noexcept
Definition: cpp11_msgpack_tuple_decl.hpp:66
tuple(tuple const &)=default
tuple_element< I, base >::type const  & get() const &noexcept
Definition: cpp11_msgpack_tuple_decl.hpp:70
std::size_t size() const
Definition: cpp11_msgpack_tuple_decl.hpp:76
tuple & operator=(tuple< OtherTypes... > const &other)
Definition: cpp11_msgpack_tuple_decl.hpp:54
tuple & operator=(tuple const &)=default
tuple & operator=(tuple &&)=default
tuple(tuple< OtherTypes... > const &other)
Definition: cpp11_msgpack_tuple_decl.hpp:46
tuple_element< I, base >::type && get() &&noexcept
Definition: cpp11_msgpack_tuple_decl.hpp:74
tuple & operator=(tuple< OtherTypes... > &&other)
Definition: cpp11_msgpack_tuple_decl.hpp:59
tuple(tuple< OtherTypes... > &&other)
Definition: cpp11_msgpack_tuple_decl.hpp:48
tuple(OtherTypes &&... other)
Definition: cpp11_msgpack_tuple_decl.hpp:43
std::tuple< Types... > base
Definition: cpp11_msgpack_tuple_decl.hpp:37
tuple< Args &... > tie(Args &... args)
Definition: cpp11_msgpack_tuple.hpp:44
tuple make_tuple()
Definition: cpp03_msgpack_tuple.hpp:10408
auto tuple_cat(Tuples &&... args) -> decltype(std::tuple_cat(std::forward< typename std::remove_reference< Tuples >::type::base >(args)...))
Definition: cpp11_msgpack_tuple.hpp:36
tuple< Args &&... > forward_as_tuple(Args &&... args) noexcept
Definition: cpp11_msgpack_tuple.hpp:31
Definition: adaptor_base.hpp:15
Definition: cpp03_msgpack_tuple_decl.hpp:35
#define MSGPACK_API_VERSION_NAMESPACE(ns)
Definition: versioning.hpp:66