Added converting support for different size tuples.

This commit is contained in:
Takatoshi Kondo
2016-06-20 17:12:53 +09:00
parent 1b87018a0a
commit 4ffdc01135
7 changed files with 1175 additions and 566 deletions

View File

@@ -113,7 +113,6 @@ struct as<std::tuple<Args...>, typename std::enable_if<msgpack::all_of<msgpack::
std::tuple<Args...> operator()(
msgpack::object const& o) const {
if (o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); }
if(o.via.array.size > sizeof...(Args)) { throw msgpack::type_error(); }
return StdTupleAs<Args...>::as(o);
}
};
@@ -124,7 +123,6 @@ struct convert<std::tuple<Args...>> {
msgpack::object const& o,
std::tuple<Args...>& v) const {
if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); }
if(o.via.array.size > sizeof...(Args)) { throw msgpack::type_error(); }
StdTupleConverter<decltype(v), sizeof...(Args)>::convert(o, v);
return o;
}

File diff suppressed because it is too large Load Diff

View File

@@ -150,7 +150,6 @@ struct as<msgpack::type::tuple<Args...>, typename std::enable_if<msgpack::all_of
msgpack::type::tuple<Args...> operator()(
msgpack::object const& o) const {
if (o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); }
if (o.via.array.size > sizeof...(Args)) { throw msgpack::type_error(); }
return MsgpackTupleAs<Args...>::as(o);
}
};
@@ -161,7 +160,6 @@ struct convert<msgpack::type::tuple<Args...>> {
msgpack::object const& o,
msgpack::type::tuple<Args...>& v) const {
if(o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); }
if(o.via.array.size > sizeof...(Args)) { throw msgpack::type_error(); }
MsgpackTupleConverter<decltype(v), sizeof...(Args)>::convert(o, v);
return o;
}