私が観察している状況に困惑しており、洞察が欲しいです。まず、LLVM 5 コンパイラ オプションをデフォルトに設定して、Xcode 5 を使用しています。
.m ファイルに次のような行があります。
static NSArray * const kSchemaVersions = @[@"1"];
そして、予想どおり、次のようなコンパイラ エラーが表示されます。Initializer element is not a compile-time constant.
ただし、この同じ行を.mm
(Objective C++) ファイルに配置すると、コンパイラは文句を言いません。
なぜ機能しないのかは完全に理解していますが、なぜ機能するのかについては困惑しています。
考え?