shiva::pp

shiva::pp

shiva::pp provides basic preprocessing utilities.

pp_stringify, pp_stringviewify

The pp_stringify macro allows converting its parameter to a string litteral.

pp_stringify(param)
const char *str = pp_stringify(hello);
//str is now "hello"

The pp_stringviewify macro allows converting its parameter to a constexpr std::string_view.

pp_stringviewify(param)
constexpr std::string_view sv = pp_stringviewify(hello);
//sv is now {"hello", 5}

pp_paste

The pp_paste macro allows concatenating its parameters together to form a new token.

pp_paste(param1, param2)
int var1 = 1;
pp_paste(var, 1) = 2;
//var1 is now 2

pp_first_arg

The pp_first_arg macro allows extracting the first parameter from a variadic macro parameter list (usually represented as __VA_ARGS__).

pp_count_args

The pp_count_args macro allows counting the number of parameters passed to a variadic macro.

pp_for_each

The pp_for_each macro allows applying a given macro to each argument of a variadic macro parameter list.

Last updated