- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
// https://github.com/dxFeed/dxfeed-c-api/blob/8f24055298c9751344db72da03ab8eb37dfeb6a5/src/DXAlgorithms.h#L63
#define CHECKED_CALL(func, param) \
do { \
if (!func(param)) { \
return false; \
} \
} while (false)
#define CHECKED_CALL_0(func) \
do { \
if (!func()) { \
return false; \
} \
} while (false)
#define CHECKED_CALL_1(func, param1) \
do { \
if (!func(param1)) { \
return false; \
} \
} while (false)
#define CHECKED_CALL_2(func, param1, param2) \
do { \
if (!func(param1, param2)) { \
return false; \
} \
} while (false)
#define CHECKED_CALL_3(func, param1, param2, param3) \
do { \
if (!func(param1, param2, param3)) { \
return false; \
} \
} while (false)
#define CHECKED_CALL_4(func, param1, param2, param3, param4) \
do { \
if (!func(param1, param2, param3, param4)) { \
return false; \
} \
} while (false)
#define CHECKED_CALL_5(func, param1, param2, param3, param4, param5) \
do { \
if (!func(param1, param2, param3, param4, param5)) { \
return false; \
} \
} while (false)
j123123 05.11.2021 12:39 # 0
Только вот "##__VA_ARGS__" это GNU расширение, чтоб не генерилась запятая при нуле аргументов. В крестоговно версии C++20 добавили "__VA_OPT__" https://stackoverflow.com/a/52891776 - шаблоноговном не все проблемы нормально решаются, какой багор )))
И GCC поддерживает __VA_OPT__ в т.ч. для "GNU C". https://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html
j123123 05.11.2021 12:51 # 0
bormand 05.11.2021 15:22 # 0
Да лучше тупо заигнорили бы её... В инициализаторах такой прецедент уже есть.
bormand 05.11.2021 15:24 # 0
З.Ы. А чем плохо CHECHEN_CALL(f5(1, 2, 3, 4, 5));?
j123123 05.11.2021 15:33 # 0
bormand 05.11.2021 15:37 # 0
З.Ы. Бесконечно много. Ибо вместо скобочек получается запятая и пробел.
j123123 05.11.2021 15:54 # 0
guest6 05.11.2021 15:29 # 0
bot_batbot_batbot 05.11.2021 17:07 # 0
Support 05.11.2021 17:29 # 0
MaaKut 07.11.2021 00:11 # 0