слишком мало аргументов для функционального вызова макроса
Мой проект успешно компилируется на платформе Win32. Теперь мне нужно отключить «классический компилятор Borland», потому что я хотел бы использовать назначенные инициализаторы следующим образом:
struct test_s test = { .first = 1, .third = 3, .second = 2 };
Когда «классический компилятор Borland» выключен, я получаю следующее сообщение об ошибке;
[bcc32c Error] codecvt(131): too few arguments provided to function-like macro invocation
std_compat.h(7): macro 'max' defined here
У меня такая же проблема на Win64.
Мой проект компилируется без проблем в C++Builder 10.1, но когда я пытаюсь скомпилировать в 10.4, у меня возникает эта проблема.
Как я могу это исправить?
1 ответ
Проблема решена путем удаления следующего включения из некоторых моих включаемых файлов и использования его только из cpp. Однако это работает в 10.1 и очень просто.
//- contents of std_compat.h -----------------------------------------------------
#ifndef std_compatH
#define std_compatH
#define min( a, b ) (a) < (b) ? (a) : (b)
#define max( a, b ) (a) > (b) ? (a) : (b)
#endif