Skip to content

Commit 8500750

Browse files
author
me
committed
added serialize_all() and deserialize_all() so you don't have to use std::tie
1 parent b09d74a commit 8500750

File tree

2 files changed

+24
-5
lines changed

2 files changed

+24
-5
lines changed

examples/example2.cpp

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,13 @@ namespace mynamespace
1515
template<SINK_TYPE Sink>
1616
void serialize(Sink& out, const my_struct& obj)
1717
{
18-
using msgpackcpp::serialize;
19-
serialize(out, std::tie(obj.my_int, obj.my_float, obj.my_string, obj.my_audio));
18+
serialize_all(out, obj.my_int, obj.my_float, obj.my_string, obj.my_audio);
2019
}
2120

2221
template<SOURCE_TYPE Source>
2322
void deserialize(Source& in, my_struct& obj)
2423
{
25-
using msgpackcpp::deserialize;
26-
auto members = std::tie(obj.my_int, obj.my_float, obj.my_string, obj.my_audio);
27-
deserialize(in, members);
24+
deserialize_all(in, obj.my_int, obj.my_float, obj.my_string, obj.my_audio);
2825
}
2926
}
3027

include/msgpack.h

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,14 @@ namespace msgpackcpp
317317
template<SOURCE_TYPE Source, class... Args>
318318
void deserialize(Source& in, std::tuple<Args...>& tpl);
319319

320+
//----------------------------------------------------------------------------------------------------------------
321+
322+
template<SINK_TYPE Sink, class... Args>
323+
void serialize_all(Sink& out, const Args&... args);
324+
325+
template<SOURCE_TYPE Source, class... Args>
326+
void deserialize_all(Source& in, Args&... args);
327+
320328
//----------------------------------------------------------------------------------------------------------------
321329
//----------------------------------------------------------------------------------------------------------------
322330
// DEFINITIONS
@@ -1223,6 +1231,20 @@ namespace msgpackcpp
12231231
}, tpl);
12241232
}
12251233

1234+
//----------------------------------------------------------------------------------------------------------------
1235+
1236+
template<SINK_TYPE Sink, class... Args>
1237+
void serialize_all(Sink& out, const Args&... args)
1238+
{
1239+
(serialize(out, args),...);
1240+
}
1241+
1242+
template<SOURCE_TYPE Source, class... Args>
1243+
void deserialize_all(Source& in, Args&... args)
1244+
{
1245+
(deserialize(in, args), ...);
1246+
}
1247+
12261248
//----------------------------------------------------------------------------------------------------------------
12271249

12281250
template<SINK_TYPE Sink>

0 commit comments

Comments
 (0)