我有一些简单的 C++ 代码,不会由 C++ Builder 10.1 Berlin 的基于 Clang 的 C++11 编译器 bccaarm 编译。
这是代码:
TComponent* Comp = new TComponent(this);
std::vector<TComponent*> Comps;
Comps.push_back(Comp);
这是错误:
[bccaarm 错误] stl_iterator.h(963):对类型“value_type”(又名“系统:classes::TComponent * __strong”)的右值引用不能绑定到“__borland_class * isTObj __strong”类型的左值(又名“系统: :Classes::TComponent * __strong')
编译器在文件 stl_iterator.h 的第 963 行停止:
其他 C++ 编译器 bcc32 和 bcc32c(也基于 Clang)对此代码没有问题。
当Comp
不是来自类型TComponent
或代码的另一个后代时TObject
,编译没有任何问题。
我不知道这段代码有什么问题以及为什么 R 和 L 值有问题......
有人知道在这里做什么吗?