library/utility/_member_variables.hh

Defines

get_fcn(x_variable)

Templates for macros for class member variables

Types of variables:

  • ”normal”
  • referrable (i.e. accessed by reference)
  • pointers
  • std::shared_ptr
  • std::atomic

Variations:

  • no set (non-const) accessor
  • static
  • mutable

How to use this file:

  1. Create the include file that will be used (see e.g. member_variables.hh)
  2. Add include guards
  3. Define set_prefix, get_prefix, var_prefix, and static_prefix
  4. #include this file

Macros that must be defined to use this file:

  • set_prefix: the prefix for set accessor functions (e.g. set_)
  • get_prefix: the prefix for get accessor functions (e.g. get_)
  • var_prefix: the prefix for variables (e.g. f_)
  • static_prefix: the prefix for static variables (e.g. s_)

Accessors for normal variables, pointers, and atomics are of the form [set_prefix][variable name] and [get_prefix][variable_name]. Accessors for referrable variables and shared_ptr’s are of the form [variable name], both const and non-const

set_fcn(x_variable)
var_name(x_variable)
static_var_name(x_variable)
mv_accessible_noset(x_type, x_variable)
mv_accessible(x_type, x_variable)
mv_accessible_static_noset(x_type, x_variable)
mv_accessible_static(x_type, x_variable)
mv_accessible_mutable_noset(x_type, x_variable)
mv_accessible_mutable(x_type, x_variable)
mv_referrable_const(x_type, x_variable)
mv_referrable(x_type, x_variable)
mv_referrable_static(x_type, x_variable)
mv_referrable_mutable(x_type, x_variable)
mv_assignable_noset(x_type, x_variable)
mv_assignable(x_type, x_variable)
mv_assignable_static_noset(x_type, x_variable)
mv_assignable_static(x_type, x_variable)
mv_assignable_mutable_noset(x_type, x_variable)
mv_assignable_mutable(x_type, x_variable)
mv_shared_ptr_const(x_type, x_variable)
mv_shared_ptr(x_type, x_variable)
mv_shared_ptr_static(x_type, x_variable)
mv_shared_ptr_mutable(x_type, x_variable)
mv_atomic_noset(x_type, x_variable)
mv_atomic(x_type, x_variable)
mv_atomic_static_noset(x_type, x_variable)
mv_atomic_static(x_type, x_variable)
mv_atomic_mutable_noset(x_type, x_variable)
mv_atomic_mutable(x_type, x_variable)