create_macro.h File Reference
#include <array>
#include <experimental/array>
#include <boost/hana/adapt_struct.hpp>
#include <boost/preprocessor/seq/for_each.hpp>
#include <boost/preprocessor/variadic/to_seq.hpp>
#include <SimoxUtility/meta/eigen.h>
#include "element_details.h"
+ Include dependency graph for create_macro.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  make_array< T, typename >
 
struct  make_array< T, std::enable_if_t< simox::meta::is_eigen_matrix_v< T > > >
 

Namespaces

namespace  armarx
 This file offers overloads of toIce() and fromIce() functions for STL container types.
 
namespace  armarx::meta
 
namespace  armarx::meta::detail
 

Macros

#define _detail_AX_MK_CFG_appl_FOR_EACH(stype, elemmacro, ...)
 
#define _detail_AX_MK_CFG_applicator(r, tup, elem)
 
#define _detail_AX_MK_CFG_applicator_i1(...)
 
#define _detail_AX_MK_CFG_applicator_i2(m, ...)
 
#define _detail_AX_MK_CFG_cfg_elem(R, sname, type, vname, ...)
 
#define _detail_AX_MK_CFG_cfg_elem_app(r, tup, elem)
 
#define _detail_AX_MK_CFG_cfg_elem_app_(...)
 
#define _detail_AX_MK_CFG_cfg_elem_app_AX_DECIMALS(...)
 
#define _detail_AX_MK_CFG_cfg_elem_app_AX_DECIMALS_i(sname, type, vname, ...)
 
#define _detail_AX_MK_CFG_cfg_elem_app_AX_DEFAULT(...)
 
#define _detail_AX_MK_CFG_cfg_elem_app_AX_DEFAULT_i(sname, type, vname, ...)
 
#define _detail_AX_MK_CFG_cfg_elem_app_AX_DESCRIPTION(...)
 
#define _detail_AX_MK_CFG_cfg_elem_app_AX_DESCRIPTION_i(sname, type, vname, ...)
 
#define _detail_AX_MK_CFG_cfg_elem_app_AX_EXCLUDE_FROM_ALL(...)
 
#define _detail_AX_MK_CFG_cfg_elem_app_AX_EXCLUDE_FROM_ALL_i(sname, type, vname, ...)
 
#define _detail_AX_MK_CFG_cfg_elem_app_AX_LABEL(...)
 
#define _detail_AX_MK_CFG_cfg_elem_app_AX_LABEL_i(sname, type, vname, ...)
 
#define _detail_AX_MK_CFG_cfg_elem_app_AX_MAX(...)
 
#define _detail_AX_MK_CFG_cfg_elem_app_AX_MAX_i(sname, type, vname, ...)
 
#define _detail_AX_MK_CFG_cfg_elem_app_AX_MIN(...)
 
#define _detail_AX_MK_CFG_cfg_elem_app_AX_MIN_i(sname, type, vname, ...)
 
#define _detail_AX_MK_CFG_cfg_elem_app_AX_NO_PROPERTY(...)
 
#define _detail_AX_MK_CFG_cfg_elem_app_AX_NO_PROPERTY_i(sname, type, vname, ...)
 
#define _detail_AX_MK_CFG_cfg_elem_app_AX_NO_REMOTE_GUI(...)
 
#define _detail_AX_MK_CFG_cfg_elem_app_AX_NO_REMOTE_GUI_i(sname, type, vname, ...)
 
#define _detail_AX_MK_CFG_cfg_elem_app_AX_PROP_NAME_i(sname, type, vname, ...)
 
#define _detail_AX_MK_CFG_cfg_elem_app_AX_PROPERTY_NAME(...)
 
#define _detail_AX_MK_CFG_cfg_elem_app_AX_STEPS(...)
 
#define _detail_AX_MK_CFG_cfg_elem_app_AX_STEPS_i(sname, type, vname, ...)
 
#define _detail_AX_MK_CFG_cfg_elem_app_i1(...)
 
#define _detail_AX_MK_CFG_cfg_elem_app_i2(sname, type, vname, ...)
 
#define _detail_AX_MK_CFG_cfg_elem_app_i3(...)
 
#define _detail_AX_MK_CFG_cfg_elem_app_i4(sname, type, vname, m, ...)
 
#define _detail_AX_MK_CFG_ctor_def(Namespace, Name, ...)
 
#define _detail_AX_MK_CFG_DEFER(x)
 
#define _detail_AX_MK_CFG_member_def(R, sname, type, vname, ...)
 
#define _detail_AX_MK_CFG_member_names(R, sname, type, name, ...)
 
#define _detail_AX_MK_CFG_rem_paren(...)
 
#define _detail_AX_MK_CFG_SEQ_FOR_EACH_R_ID()
 
#define _detail_AX_MK_CFG_struct_def(Namespace, Name, ...)
 
#define _detail_AX_MK_CFG_t0(e0, ...)
 
#define _detail_AX_MK_CFG_tail(e0, ...)
 
#define ARMARX_CONFIG_STRUCT_ADAPT(Namespace, Name, ...)
 
#define ARMARX_CONFIG_STRUCT_ADAPT_CONFIGURE(Namespace, Name, ...)
 
#define ARMARX_CONFIG_STRUCT_CONFIGURE(Namespace, Name, ...)
 
#define ARMARX_CONFIG_STRUCT_CONFIGURE_ADAPT(Namespace, Name, ...)
 Usage ARMARX_CONFIG_STRUCT_CONFIGURE_ADAPT( foospace, foo, (float, flooat, AX_DEFAULT(1234), AX_MIN(-42), AX_MAX(1337)) )
 
#define ARMARX_CONFIG_STRUCT_DEFINE_ADAPT(Namespace, Name, ...)
 Usage ARMARX_CONFIG_STRUCT_DEFINE_ADAPT( foospace, foo, (float, flooat, AX_DEFAULT(1234), AX_MIN(-42), AX_MAX(1337)) )
 
#define ARMARX_CONFIG_STRUCT_DEFINE_ADAPT_CONFIGURE(Namespace, Name, ...)
 Usage ARMARX_CONFIG_STRUCT_DEFINE_ADAPT_CONFIGURE( foospace, foo, (float, flooat, AX_DEFAULT(1234), AX_MIN(-42), AX_MAX(1337)) )
 

Macro Definition Documentation

◆ _detail_AX_MK_CFG_appl_FOR_EACH

#define _detail_AX_MK_CFG_appl_FOR_EACH ( stype,
elemmacro,
... )
Value:
BOOST_PP_SEQ_FOR_EACH( \
_detail_AX_MK_CFG_applicator, (elemmacro, stype), BOOST_PP_VARIADIC_TO_SEQ(__VA_ARGS__))
#define _detail_AX_MK_CFG_applicator(r, tup, elem)

Definition at line 54 of file create_macro.h.

◆ _detail_AX_MK_CFG_applicator

#define _detail_AX_MK_CFG_applicator ( r,
tup,
elem )
Value:
#define _detail_AX_MK_CFG_t0(e0,...)
#define _detail_AX_MK_CFG_applicator_i1(...)
#define _detail_AX_MK_CFG_tail(e0,...)
#define _detail_AX_MK_CFG_rem_paren(...)

Definition at line 46 of file create_macro.h.

◆ _detail_AX_MK_CFG_applicator_i1

#define _detail_AX_MK_CFG_applicator_i1 ( ...)
Value:
#define _detail_AX_MK_CFG_applicator_i2(m,...)

Definition at line 43 of file create_macro.h.

◆ _detail_AX_MK_CFG_applicator_i2

#define _detail_AX_MK_CFG_applicator_i2 ( m,
... )
Value:
m(__VA_ARGS__)

Definition at line 42 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem

#define _detail_AX_MK_CFG_cfg_elem ( R,
sname,
type,
vname,
... )
Value:
R, \
(sname, type, vname), \
BOOST_PP_VARIADIC_TO_SEQ(__VA_ARGS__))
#define _detail_AX_MK_CFG_DEFER(x)
#define _detail_AX_MK_CFG_cfg_elem_app(r, tup, elem)
#define _detail_AX_MK_CFG_SEQ_FOR_EACH_R_ID()

Definition at line 122 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app

#define _detail_AX_MK_CFG_cfg_elem_app ( r,
tup,
elem )
Value:

Definition at line 113 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app_

#define _detail_AX_MK_CFG_cfg_elem_app_ ( ...)

Definition at line 151 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app_AX_DECIMALS

#define _detail_AX_MK_CFG_cfg_elem_app_AX_DECIMALS ( ...)
Value:
#define _detail_AX_MK_CFG_cfg_elem_app_AX_DECIMALS_i(sname, type, vname,...)

Definition at line 188 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app_AX_DECIMALS_i

#define _detail_AX_MK_CFG_cfg_elem_app_AX_DECIMALS_i ( sname,
type,
vname,
... )
Value:
template <> \
constexpr auto element_decimals<sname, type, &sname::vname> = \
std::experimental::make_array<int>(__VA_ARGS__);

Definition at line 191 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app_AX_DEFAULT

#define _detail_AX_MK_CFG_cfg_elem_app_AX_DEFAULT ( ...)
Value:
#define _detail_AX_MK_CFG_cfg_elem_app_AX_DEFAULT_i(sname, type, vname,...)

Definition at line 130 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app_AX_DEFAULT_i

#define _detail_AX_MK_CFG_cfg_elem_app_AX_DEFAULT_i ( sname,
type,
vname,
... )
Value:
template <> \
struct element_default<sname, type, &sname::vname> : \
std::true_type /* IN CASE OF AN ERROR: You might have two AX_DEFAULT */ \
{ \
static type \
get() \
{ \
return type(__VA_ARGS__); \
} \
static void \
set(sname& s) \
{ \
s.vname = get(); \
} \
};

Definition at line 133 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app_AX_DESCRIPTION

#define _detail_AX_MK_CFG_cfg_elem_app_AX_DESCRIPTION ( ...)
Value:
#define _detail_AX_MK_CFG_cfg_elem_app_AX_DESCRIPTION_i(sname, type, vname,...)

Definition at line 172 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app_AX_DESCRIPTION_i

#define _detail_AX_MK_CFG_cfg_elem_app_AX_DESCRIPTION_i ( sname,
type,
vname,
... )
Value:
template <> \
constexpr const char* element_description<sname, type, &sname::vname> = __VA_ARGS__;

Definition at line 175 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app_AX_EXCLUDE_FROM_ALL

#define _detail_AX_MK_CFG_cfg_elem_app_AX_EXCLUDE_FROM_ALL ( ...)
Value:
#define _detail_AX_MK_CFG_cfg_elem_app_AX_EXCLUDE_FROM_ALL_i(sname, type, vname,...)

Definition at line 228 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app_AX_EXCLUDE_FROM_ALL_i

#define _detail_AX_MK_CFG_cfg_elem_app_AX_EXCLUDE_FROM_ALL_i ( sname,
type,
vname,
... )
Value:
template <> \
constexpr std::true_type element_no_prop<sname, type, &sname::vname> = {}; \
template <> \
constexpr std::true_type element_no_rem_gui<sname, type, &sname::vname> = {}; \

Definition at line 231 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app_AX_LABEL

#define _detail_AX_MK_CFG_cfg_elem_app_AX_LABEL ( ...)
Value:
#define _detail_AX_MK_CFG_cfg_elem_app_AX_LABEL_i(sname, type, vname,...)

Definition at line 206 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app_AX_LABEL_i

#define _detail_AX_MK_CFG_cfg_elem_app_AX_LABEL_i ( sname,
type,
vname,
... )
Value:
template <> \
constexpr const char* element_label<sname, type, &sname::vname> = {__VA_ARGS__};

Definition at line 209 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app_AX_MAX

#define _detail_AX_MK_CFG_cfg_elem_app_AX_MAX ( ...)
Value:
#define _detail_AX_MK_CFG_cfg_elem_app_AX_MAX_i(sname, type, vname,...)

Definition at line 163 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app_AX_MAX_i

#define _detail_AX_MK_CFG_cfg_elem_app_AX_MAX_i ( sname,
type,
vname,
... )
Value:
template <> \
constexpr auto element_max<sname, type, &sname::vname> = \
armarx::meta::detail::make_array<type>::value(__VA_ARGS__);

Definition at line 166 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app_AX_MIN

#define _detail_AX_MK_CFG_cfg_elem_app_AX_MIN ( ...)
Value:
#define _detail_AX_MK_CFG_cfg_elem_app_AX_MIN_i(sname, type, vname,...)

Definition at line 154 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app_AX_MIN_i

#define _detail_AX_MK_CFG_cfg_elem_app_AX_MIN_i ( sname,
type,
vname,
... )
Value:
template <> \
constexpr auto element_min<sname, type, &sname::vname> = \
armarx::meta::detail::make_array<type>::value(__VA_ARGS__);

Definition at line 157 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app_AX_NO_PROPERTY

#define _detail_AX_MK_CFG_cfg_elem_app_AX_NO_PROPERTY ( ...)
Value:
#define _detail_AX_MK_CFG_cfg_elem_app_AX_NO_PROPERTY_i(sname, type, vname,...)

Definition at line 214 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app_AX_NO_PROPERTY_i

#define _detail_AX_MK_CFG_cfg_elem_app_AX_NO_PROPERTY_i ( sname,
type,
vname,
... )
Value:
template <> \
constexpr std::true_type element_no_prop<sname, type, &sname::vname> = {};

Definition at line 217 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app_AX_NO_REMOTE_GUI

#define _detail_AX_MK_CFG_cfg_elem_app_AX_NO_REMOTE_GUI ( ...)
Value:
#define _detail_AX_MK_CFG_cfg_elem_app_AX_NO_REMOTE_GUI_i(sname, type, vname,...)

Definition at line 221 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app_AX_NO_REMOTE_GUI_i

#define _detail_AX_MK_CFG_cfg_elem_app_AX_NO_REMOTE_GUI_i ( sname,
type,
vname,
... )
Value:
template <> \
constexpr std::true_type element_no_rem_gui<sname, type, &sname::vname> = {};

Definition at line 224 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app_AX_PROP_NAME_i

#define _detail_AX_MK_CFG_cfg_elem_app_AX_PROP_NAME_i ( sname,
type,
vname,
... )
Value:
template <> \
constexpr const char* element_property_name<sname, type, &sname::vname> = __VA_ARGS__;

Definition at line 183 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app_AX_PROPERTY_NAME

#define _detail_AX_MK_CFG_cfg_elem_app_AX_PROPERTY_NAME ( ...)
Value:
#define _detail_AX_MK_CFG_cfg_elem_app_AX_PROP_NAME_i(sname, type, vname,...)

Definition at line 180 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app_AX_STEPS

#define _detail_AX_MK_CFG_cfg_elem_app_AX_STEPS ( ...)
Value:
#define _detail_AX_MK_CFG_cfg_elem_app_AX_STEPS_i(sname, type, vname,...)

Definition at line 197 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app_AX_STEPS_i

#define _detail_AX_MK_CFG_cfg_elem_app_AX_STEPS_i ( sname,
type,
vname,
... )
Value:
template <> \
constexpr auto element_steps<sname, type, &sname::vname> = \
std::experimental::make_array<int>(__VA_ARGS__);

Definition at line 200 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app_i1

#define _detail_AX_MK_CFG_cfg_elem_app_i1 ( ...)
Value:
#define _detail_AX_MK_CFG_cfg_elem_app_i2(sname, type, vname,...)

Definition at line 110 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app_i2

#define _detail_AX_MK_CFG_cfg_elem_app_i2 ( sname,
type,
vname,
... )
Value:
sname, type, vname, _detail_AX_MK_CFG_cfg_elem_app_##__VA_ARGS__)
#define _detail_AX_MK_CFG_cfg_elem_app_i3(...)
#define _detail_AX_MK_CFG_cfg_elem_app_(...)

Definition at line 106 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app_i3

#define _detail_AX_MK_CFG_cfg_elem_app_i3 ( ...)
Value:
#define _detail_AX_MK_CFG_cfg_elem_app_i4(sname, type, vname, m,...)

Definition at line 104 of file create_macro.h.

◆ _detail_AX_MK_CFG_cfg_elem_app_i4

#define _detail_AX_MK_CFG_cfg_elem_app_i4 ( sname,
type,
vname,
m,
... )
Value:
m(sname, type, vname, __VA_ARGS__)

Definition at line 101 of file create_macro.h.

◆ _detail_AX_MK_CFG_ctor_def

#define _detail_AX_MK_CFG_ctor_def ( Namespace,
Name,
... )
Value:
namespace Namespace \
{ \
inline Name::Name() \
{ \
armarx::meta::cfg::struct_default<Name>::set(*this); \
} \
} \
static_assert(true, "force the usage of a trailing semicolon")

Definition at line 79 of file create_macro.h.

◆ _detail_AX_MK_CFG_DEFER

#define _detail_AX_MK_CFG_DEFER ( x)
Value:
x BOOST_PP_EMPTY()
This file offers overloads of toIce() and fromIce() functions for STL container types.

Definition at line 119 of file create_macro.h.

◆ _detail_AX_MK_CFG_member_def

#define _detail_AX_MK_CFG_member_def ( R,
sname,
type,
vname,
... )
Value:
type vname;

Definition at line 61 of file create_macro.h.

◆ _detail_AX_MK_CFG_member_names

#define _detail_AX_MK_CFG_member_names ( R,
sname,
type,
name,
... )
Value:
, name

Definition at line 239 of file create_macro.h.

◆ _detail_AX_MK_CFG_rem_paren

#define _detail_AX_MK_CFG_rem_paren ( ...)
Value:
__VA_ARGS__

Definition at line 35 of file create_macro.h.

◆ _detail_AX_MK_CFG_SEQ_FOR_EACH_R_ID

#define _detail_AX_MK_CFG_SEQ_FOR_EACH_R_ID ( )
Value:
BOOST_PP_SEQ_FOR_EACH_R

Definition at line 120 of file create_macro.h.

◆ _detail_AX_MK_CFG_struct_def

#define _detail_AX_MK_CFG_struct_def ( Namespace,
Name,
... )
Value:
namespace Namespace \
{ \
struct Name \
{ \
BOOST_PP_EXPAND(_detail_AX_MK_CFG_appl_FOR_EACH(Namespace::Name, \
__VA_ARGS__)) \
Name(); \
Name(Name&&) = default; \
Name(const Name&) = default; \
Name& operator=(Name&&) = default; \
Name& operator=(const Name&) = default; \
}; \
} \
static_assert(true, "force the usage of a trailing semicolon")
#define _detail_AX_MK_CFG_appl_FOR_EACH(stype, elemmacro,...)
#define _detail_AX_MK_CFG_member_def(R, sname, type, vname,...)

Definition at line 62 of file create_macro.h.

◆ _detail_AX_MK_CFG_t0

#define _detail_AX_MK_CFG_t0 ( e0,
... )
Value:
e0

Definition at line 38 of file create_macro.h.

◆ _detail_AX_MK_CFG_tail

#define _detail_AX_MK_CFG_tail ( e0,
... )
Value:
__VA_ARGS__

Definition at line 40 of file create_macro.h.

◆ ARMARX_CONFIG_STRUCT_ADAPT

#define ARMARX_CONFIG_STRUCT_ADAPT ( Namespace,
Name,
... )
Value:
BOOST_HANA_ADAPT_STRUCT(Namespace::Name /* , will con from next macro*/ \
Namespace::Name, _detail_AX_MK_CFG_member_names, __VA_ARGS__))
#define _detail_AX_MK_CFG_member_names(R, sname, type, name,...)

Definition at line 240 of file create_macro.h.

◆ ARMARX_CONFIG_STRUCT_ADAPT_CONFIGURE

#define ARMARX_CONFIG_STRUCT_ADAPT_CONFIGURE ( Namespace,
Name,
... )
Value:
ARMARX_CONFIG_STRUCT_CONFIGURE_ADAPT(Namespace, Name, __VA_ARGS__)
#define ARMARX_CONFIG_STRUCT_CONFIGURE_ADAPT(Namespace, Name,...)
Usage ARMARX_CONFIG_STRUCT_CONFIGURE_ADAPT( foospace, foo, (float, flooat, AX_DEFAULT(1234),...

Definition at line 280 of file create_macro.h.

◆ ARMARX_CONFIG_STRUCT_CONFIGURE

#define ARMARX_CONFIG_STRUCT_CONFIGURE ( Namespace,
Name,
... )
Value:
namespace armarx::meta::cfg \
{ \
BOOST_PP_EXPAND(_detail_AX_MK_CFG_appl_FOR_EACH(Namespace::Name, \
__VA_ARGS__)) \
} \
static_assert(true, "force the usage of a trailing semicolon")
#define _detail_AX_MK_CFG_cfg_elem(R, sname, type, vname,...)

Definition at line 91 of file create_macro.h.

◆ ARMARX_CONFIG_STRUCT_CONFIGURE_ADAPT

#define ARMARX_CONFIG_STRUCT_CONFIGURE_ADAPT ( Namespace,
Name,
... )
Value:
ARMARX_CONFIG_STRUCT_ADAPT(Namespace, Name, __VA_ARGS__); \
ARMARX_CONFIG_STRUCT_CONFIGURE(Namespace, Name, __VA_ARGS__)
#define ARMARX_CONFIG_STRUCT_ADAPT(Namespace, Name,...)

Usage ARMARX_CONFIG_STRUCT_CONFIGURE_ADAPT( foospace, foo, (float, flooat, AX_DEFAULT(1234), AX_MIN(-42), AX_MAX(1337)) )

Definition at line 276 of file create_macro.h.

◆ ARMARX_CONFIG_STRUCT_DEFINE_ADAPT

#define ARMARX_CONFIG_STRUCT_DEFINE_ADAPT ( Namespace,
Name,
... )
Value:
_detail_AX_MK_CFG_struct_def(Namespace, Name, __VA_ARGS__); \
ARMARX_CONFIG_STRUCT_ADAPT(Namespace, Name, __VA_ARGS__); \
_detail_AX_MK_CFG_ctor_def(Namespace, Name, __VA_ARGS__)
#define _detail_AX_MK_CFG_struct_def(Namespace, Name,...)

Usage ARMARX_CONFIG_STRUCT_DEFINE_ADAPT( foospace, foo, (float, flooat, AX_DEFAULT(1234), AX_MIN(-42), AX_MAX(1337)) )

Definition at line 253 of file create_macro.h.

◆ ARMARX_CONFIG_STRUCT_DEFINE_ADAPT_CONFIGURE

#define ARMARX_CONFIG_STRUCT_DEFINE_ADAPT_CONFIGURE ( Namespace,
Name,
... )
Value:
ARMARX_CONFIG_STRUCT_DEFINE_ADAPT(Namespace, Name, __VA_ARGS__); \
ARMARX_CONFIG_STRUCT_CONFIGURE(Namespace, Name, __VA_ARGS__)
#define ARMARX_CONFIG_STRUCT_DEFINE_ADAPT(Namespace, Name,...)
Usage ARMARX_CONFIG_STRUCT_DEFINE_ADAPT( foospace, foo, (float, flooat, AX_DEFAULT(1234),...

Usage ARMARX_CONFIG_STRUCT_DEFINE_ADAPT_CONFIGURE( foospace, foo, (float, flooat, AX_DEFAULT(1234), AX_MIN(-42), AX_MAX(1337)) )

Definition at line 265 of file create_macro.h.