diff --git a/include/bitsery/deserializer.h b/include/bitsery/deserializer.h index 76c56d7..d93a500 100644 --- a/include/bitsery/deserializer.h +++ b/include/bitsery/deserializer.h @@ -102,6 +102,15 @@ namespace bitsery { archive(std::forward(tail)...); } + template + BasicDeserializer &operator()(T &&head, TArgs &&... tail) { + //serialize object + details::ArchiveFunction::invoke(*this, std::forward(head)); + //expand other elements + archive(std::forward(tail)...); + return *this; + } + /* * value */ diff --git a/include/bitsery/serializer.h b/include/bitsery/serializer.h index 67b2a45..e6ee9d7 100644 --- a/include/bitsery/serializer.h +++ b/include/bitsery/serializer.h @@ -100,6 +100,13 @@ namespace bitsery { archive(std::forward(tail)...); } + template + BasicSerializer &operator()(T &&head, TArgs &&... tail) { + details::ArchiveFunction::invoke(*this, std::forward(head)); + archive(std::forward(tail)...); + return *this; + } + /* * value overloads */