Компилятор c ++ не может сгенерировать operator = для класса

Этот код:

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 член не годится, и я посмотрел на выражения шаблона, но не смог получить приемлемый ответ.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]