C++ Builder 10.1 Berlin の Clang ベースの C++11 コンパイラ bccaarm ではコンパイルできない単純な C++ コードがいくつかあります。
これはコードです:
TComponent* Comp = new TComponent(this);
std::vector<TComponent*> Comps;
Comps.push_back(Comp);
そして、これはエラーです:
[bccaarm エラー] stl_iterator.h(963): 型 'value_type' (別名 'System: classes::TComponent * __strong') への右辺値参照は、型 '__borland_class * isTObj __strong' (別名 'System: :Classes::TComponent * __strong')
コンパイラは、ファイル stl_iterator.h の 963 行目で停止します。
他の C++ コンパイラ bcc32 および bcc32c (これも Clang ベース) では、このコードに問題はありません。
Comp
タイプTComponent
またはコードからの別の子孫からではない場合TObject
、問題なくコンパイルされます。
このコードの何が問題なのか、なぜ R 値と L 値に問題があるのか わかりません...
ここで何をすべきか知っている人はいますか?