+#define side_arg_dynamic_define_struct_visitor(_identifier, _dynamic_struct_visitor, _ctx, _attr...) \
+ struct side_arg_dynamic_struct_visitor _identifier = { \
+ .visitor = SIDE_PTR_INIT(_dynamic_struct_visitor), \
+ .app_ctx = SIDE_PTR_INIT(_ctx), \
+ .attr = SIDE_PTR_INIT(SIDE_PARAM_SELECT_ARG1(_, ##_attr, side_attr_list())), \
+ .cached_arg = SIDE_PTR_INIT(NULL), \
+ .nr_attr = SIDE_ARRAY_SIZE(SIDE_PARAM_SELECT_ARG1(_, ##_attr, side_attr_list())), \
+ }
+
+#define side_arg_dynamic_define_vla_visitor(_identifier, _dynamic_vla_visitor, _ctx, _attr...) \
+ struct side_arg_dynamic_vla_visitor _identifier = { \
+ .visitor = SIDE_PTR_INIT(_dynamic_vla_visitor), \
+ .app_ctx = SIDE_PTR_INIT(_ctx), \
+ .attr = SIDE_PTR_INIT(SIDE_PARAM_SELECT_ARG1(_, ##_attr, side_attr_list())), \
+ .cached_arg = SIDE_PTR_INIT(NULL), \
+ .nr_attr = SIDE_ARRAY_SIZE(SIDE_PARAM_SELECT_ARG1(_, ##_attr, side_attr_list())), \
+ }
+