В C ++ есть механизм, позволяющий выражать не завершенные макросы?
Это надуманный пример:
#define MACRO(x, y) x + y
#define MACROC1(x) MACRO(x,
#define MACROC2(y) y)
//...expecting 3
int foo = MACROC1(1) MACROC2(2);
Я получаю сообщение об ошибке некорректно прерванного вызова макроса из MSVC.
Когда я запускаю cl -E file.cpp , я вижу, что был сгенерирован код ниже:
int c = 1 + 1 + 2);
В Visual Studio компиляция завершается с ошибками:
ошибка C2059: синтаксическая ошибка: ')'
IntelliSense: неправильно завершенный вызов макроса