这段代码:
struct TToken
{
UnicodeString &DBIDs;
std::vector<TToken> T;
TToken(UnicodeString &DI) : DBIDs(DI) {}
void Append(void) {T.push_back(TToken(DBIDs));}
};
UnicodeString DI="25,40,55";
TToken T(DI);
if (T.DBIDs==DI) // if I comment out this comparison it works fine
....
生成上述编译器错误(我使用的是 C++Builder 10.1 Berlin)。
如果我更改对UnicodeString
指针的引用,一切都会按预期工作。有谁知道为什么引用会产生错误?
顺便说一句,有没有一种更简单的方法DBIDs
可以让每个创建vector
的元素都可以使用,而不是一直传递指针/引用?static
会员不好,我确实看过模板表达式,但无法得到可接受的答案。