2つのプロジェクト間で共有されるC++ソースファイル(.cpp)があります.1つはObjective C++を使用し、もう1つはプレーンC++を使用しています。私はObjective C++プロジェクトとプレーンなC++プロジェクトのために異なるコードを使う必要があるそのファイルの一部を持っているので、プロジェクトがObjective C++を使ってコンパイルされているかどうかを確認する必要があります。プリプロセッサを使用しているObjective C++プロジェクトでcppファイルがコンパイルされているかどうかを確認する方法はありますか?
#ifdef __OBJC__
//Objective C++ specific code here
#else
//Plain C++ specific code here
#endif
問題が__OBJC__
マクロが定義されることはありませんということです、いくつか検索した後、私は__OBJC__
マクロファイルはObjective Cのコンパイラでコンパイルので、私はこのコードをしようとしたかどうかを確認するために使用することができることを見出しObjective C++プロジェクトでさえも。 マクロはObjective C++プロジェクトの.mmファイルで定義されていますが、.cppファイルでは定義されていません。
重要な場合は、iOS用のObjective C++プロジェクトをXCodeでコンパイルしています。プレーンなC++プロジェクトは、Visual Studio、XCode、またはGCCを使用してコンパイルできるクロスプラットフォームのコンピュータプログラムです。
私の.cppファイルがObjective C++プロジェクトまたはプレーンなC++プロジェクトでコンパイルされている場合、どのようにプリプロセッサを使用してチェックできますか?
AFAIK、XCodeはプロジェクトの種類からではなく、ファイルの接尾辞から言語を決定します。 – molbdnilo
[ファイルインスペクタの[タイプ]ドロップダウン](https://i.stack.imgur.com/WKOaq.png)でコンパイルモードを変更できます。これはプロジェクトごとの設定です。 –
@JoshCaswellありがとうございます。 "Type"のファイルインスペクタで "Default - C++ source"を "Objective-C++ source"に変更しました。 –