From aacda7e79342e3dfacd92da834703235f9b17396 Mon Sep 17 00:00:00 2001 From: "Claudius \"keldu\" Holeksa" Date: Fri, 1 Dec 2023 16:30:02 +0100 Subject: tools: Ideas for flattening added --- c++/tools/c_gen_iface.hpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'c++/tools') diff --git a/c++/tools/c_gen_iface.hpp b/c++/tools/c_gen_iface.hpp index 42f694f..469c5c0 100644 --- a/c++/tools/c_gen_iface.hpp +++ b/c++/tools/c_gen_iface.hpp @@ -57,7 +57,33 @@ struct c_types { namespace schema { using namespace saw::schema; +/** +Pseudo flattened +using Foo = Struct< + Member, "a"> + Member, "b"> +>; + +Needs to be flattened to + +template +using FlattenedSchemaElement = Struct< + Member, "path">, + Member +>; + +// Illegal, but doable with more lines of code +// Just use typename... T and +// "T..." for +// "Member,Names>..." +// and specialize somewhere else +template +using FlattenedSchema = Struct< + Member + Member, Names>... +>; + */ using StructBindingSchema = Struct< Member, Member, -- cgit v1.2.3