Что определяет препроцессор для языка C ++ в заголовке прекомпиляции Xcode?

В моем Prefix.pch файл, который я использую __OBJC__ препроцессор определить для компиляции заголовков Objective C. Что является эквивалентом для компиляции заголовков C ++?

#ifdef __OBJC__
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#endif

0

Решение

Существует стандартная препроцессорная константа, __cplusplus, Его значение расширено до номера версии используемого стандарта C ++:

__cplusplus

обозначает версию стандарта C ++, которая используется, расширяется до
значение 199711L (до C ++ 11), 201103L (C ++ 11), 201402L (C ++ 14) или
201703L (C ++ 17)

Источник: cppreference

Итак, вы можете написать, например:

#ifdef __cplusplus
#if __cplusplus >= 201103L
// include new stuff
#else
// use legacy features
#endif
#endif
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]