17 #ifndef HH_SENF_Utils_mpl_ 18 #define HH_SENF_Utils_mpl_ 1 21 #include <senf/config.hh> 106 template <
unsigned n>
108 char _[SENF_MPL_RV_ALIGNMENT][n+1];
119 # define SENF_MPL_RV(expr) (sizeof(expr)/SENF_MPL_RV_ALIGNMENT-1) 150 #ifndef SENF_MPL_SLOT_NOEXPAND 183 # define SENF_MPL_SLOT_DEF(name,value) \ 185 static senf::mpl::rv<0> _SENF_MPL_SLOT_ ## name (_); \ 186 SENF_MPL_SLOT_SET(name,value) 195 # define SENF_MPL_SLOT_DEF_ZERO(name) \ 197 static senf::mpl::rv<0> _SENF_MPL_SLOT_ ## name (_); 204 # define SENF_MPL_SLOT_SET(name,value) \ 205 static senf::mpl::rv<unsigned(value)+1> \ 206 _SENF_MPL_SLOT_ ## name (senf::mpl::take_int<__LINE__>) 213 # define SENF_MPL_SLOT_GET(name) \ 214 SENF_MPL_SLOT_I_GET(name)
Take an arbitrary type template argument.
Take an arbitrary integer template argument.
Marker class for empty default values etc.
Take an arbitrary unsigned integer template argument.
Return-value type used to implement overload selection.