Ситуация
У меня есть QList<QVariant>
, где каждый QVariant
элемент должен быть QList<QVariant>
своего собственного.Чтобы заполнить список, я хочу использовать QList :: operator << </a>, который перегружен, чтобы принимать const T & value
и более специализированный const QList<T> & other
.
Проблема
Когда я запускаю следующий код:
QList<QVariant> rootList;
QList<QVariant> subList = QList<QVariant>() << 1 << 2 << 3;
rootList << subList;
Последняя строка здесь будет вызывать функцию operator<< ( const QList<T> & other )
, насколько я знаю, потому что это более специализированная функциякоторый соответствует типу subList
.Результирующий список будет выглядеть следующим образом:
rootList: [1, 2, 3]
Когда вместо этого я хочу, чтобы он выглядел следующим образом:
rootList: [[1, 2, 3]]
Как принудительно вызвать вызов неспециализированной версии QList::operator<<
?
Обходной путь
Я понимаю, что есть функция QList :: push_back , которая не перегружена для QList<T>
, и это делаетчто я ищуОднако я не хочу полагаться на функцию, которая была «предусмотрена только для совместимости с STL».