Этот код:
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
член не годится, и я посмотрел на выражения шаблона, но не смог получить приемлемый ответ.
Задача ещё не решена.
Других решений пока нет …