слишком мало аргументов для функционального вызова макроса

Мой проект успешно компилируется на платформе 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
Другие вопросы по тегам