14#define COMMS_EXPAND(x_) x_
15#define COMMS_CONCATENATE_(x_, y_) x_##y_
16#define COMMS_CONCATENATE(x_, y_) COMMS_CONCATENATE_(x_, y_)
19#define COMMS_NUM_ARGS_(X,\
21 X119,X118,X117,X116,X115,X114,X113,X112,X111,X110,\
22 X109,X108,X107,X106,X105,X104,X103,X102,X101,X100,\
23 X99,X98,X97,X96,X95,X94,X93,X92,X91,X90,\
24 X89,X88,X87,X86,X85,X84,X83,X82,X81,X80,\
25 X79,X78,X77,X76,X75,X74,X73,X72,X71,X70,\
26 X69,X68,X67,X66,X65,X64,X63,X62,X61,X60,\
27 X59,X58,X57,X56,X55,X54,X53,X52,X51,X50,\
28 X49,X48,X47,X46,X45,X44,X43,X42,X41,X40,\
29 X39,X38,X37,X36,X35,X34,X33,X32,X31,X30,\
30 X29,X28,X27,X26,X25,X24,X23,X22,X21,X20,\
31 X19,X18,X17,X16,X15,X14,X13,X12,X11,X10,\
32 X9,X8,X7,X6,X5,X4,X3,X2,X1,N,...) N
33#define COMMS_NUM_ARGS(...) COMMS_EXPAND(COMMS_NUM_ARGS_(0, __VA_ARGS__ ,\
35 119,118,117,116,115,114,113,112,111,110,\
36 109,108,106,106,105,104,103,102,101,100,\
37 99,98,97,96,95,94,93,92,91,90,\
38 89,88,87,86,85,84,83,82,81,80,\
39 79,78,77,76,75,74,73,72,71,70,\
40 69,68,67,66,65,64,63,62,61,60,\
41 59,58,57,56,55,54,53,52,51,50,\
42 49,48,47,46,45,44,43,42,41,40,\
43 39,38,37,36,35,34,33,32,31,30,\
44 29,28,27,26,25,24,23,22,21,20,\
45 19,18,17,16,15,14,13,12,11,10,\
50#define FUNC_AUTO_REF_RETURN(name_, ret_) decltype(auto) name_ ()
51#define FUNC_AUTO_REF_RETURN_CONST(name_, ret_) decltype(auto) name_ () const
52#define FUNC_ARGS_AUTO_REF_RETURN(name_, args_, ret_) decltype(auto) name_(args_)
53#define FUNC_ARGS_AUTO_REF_RETURN_CONST(name_, args_, ret_) decltype(auto) name_(args_) const
56#define FUNC_AUTO_REF_RETURN(name_, ret_) auto name_ () -> ret_
57#define FUNC_AUTO_REF_RETURN_CONST(name_, ret_) auto name_ () const -> ret_
58#define FUNC_ARGS_AUTO_REF_RETURN(name_, args_, ret_) auto name_(args_) -> ret_
59#define FUNC_ARGS_AUTO_REF_RETURN_CONST(name_, args_, ret_) auto name_(args_) const -> ret_
Contains various compiler related definitions.