Как проверить, установлен ли один из нескольких макросов в одном файле #ifdef?

У меня есть код на С++ и вы хотите выполнить действие, если определены макросы __APPLE__ или __linux.

Если бы я сделал это как обычный if условный, было бы легко использовать ||:

if (something || something) { .. code .. }

Но, насколько я знаю, для операторов #ifdef нет оператора ||. Как я могу проверить, существует ли __APPLE__ или __linux с помощью одного оператора #ifdef?

Ответ 1

Вы не можете в одном #ifdef сделать только один #if?

#if defined(__APPLE__) || defined(__linux)

это также работает, если вы предпочитаете

#if defined __APPLE__ || defined __linux

Ответ 2

#if defined(__APPLE__) || defined(__linux)

Ответ 3

#if defined __APPLE__ || defined __linux

Ответ 4

В моем С++ есть.

#if defined(__APPLE__) || defined(__linux)
  // ...
#endif