From 55043d5a4eb60c023739544ae0454f093c89d372 Mon Sep 17 00:00:00 2001 From: "Claudius \"keldu\" Holeksa" Date: Sat, 27 May 2023 19:51:40 +0200 Subject: c++: Added struct and support for pack interpretation --- src/codec/data.h | 10 +++++++--- src/core/templates.h | 16 ++++++++++++++++ 2 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 src/core/templates.h (limited to 'src') diff --git a/src/codec/data.h b/src/codec/data.h index 96345af..442fa26 100644 --- a/src/codec/data.h +++ b/src/codec/data.h @@ -1,6 +1,10 @@ #pragma once #include +#include + +#include + #include "schema.h" namespace saw { @@ -69,14 +73,14 @@ private: static_assert(always_false, "Type not supported"); }; -template -class data...>, encode::Native> { +template +class data...>, encode::Native> { private: std::tuple...> value_; public: template data& get(){ - + return std::get::value>(value_); } constexpr size_t size() const { diff --git a/src/core/templates.h b/src/core/templates.h new file mode 100644 index 0000000..833bb5b --- /dev/null +++ b/src/core/templates.h @@ -0,0 +1,16 @@ +#pragma once + +namespace saw { + +template struct parameter_pack_index; + +template struct parameter_pack_index { + static constexpr size_t value = 0u; +}; + +template +struct parameter_pack_index { + static constexpr size_t value = + 1u + parameter_pack_index::value; +}; +} -- cgit v1.2.3