Здравствуйте, гость ( Вход | Регистрация )
Алексей1153 | Дата 14.12.2010, 22:05 |
Если сильно нужно, можно 1) унаследоваться от QVariant 2) или инкапсулировать QVariant и наследником пользоваться как ключом |
|
SABROG | Дата 14.12.2010, 20:00 |
т.е. просто не подходит, т.к. не реализует все..... "дочерние" методы? Просто не подходит, т.к. некоторые типы данных, которые могут содержаться в QVariant просто бессмысленно сравнивать через operator<(). |
|
Гость | Дата 14.12.2010, 19:53 |
bvn13, ещё раз. у QVariant нет bool operator<() необходимого для ключей QMap. Цитата The key type of a QMap must provide operator<() specifying a total order. т.е. просто не подходит, т.к. не реализует все..... "дочерние" методы? |
|
kwisp | Дата 14.12.2010, 19:46 |
bvn13, ещё раз. у QVariant нет bool operator<() необходимого для ключей QMap. Цитата The key type of a QMap must provide operator<() specifying a total order. |
|
bvn13 | Дата 14.12.2010, 19:32 |
вопрос навскидку. почему QVariant не может быть ключом для QMap? о_О там же нет прямой зависимости... |
|
wiz29 | Дата 14.12.2010, 18:54 |
Дословно, компилер тебе сказал, чтоб быть ключом в мапе, нужен оператор меньше, которого для типа QVariant естественно нет... Судя, навскидку, по твоему коду, можно использовать QString в качестве ключа |
|
igor_bogomolov | Дата 14.12.2010, 18:40 |
QVariant не может быть ключом для map | |
bvn13 | Дата 14.12.2010, 18:20 |
Создал QMap<QVariant, struct MY_STRUCT> map; Пытаюсь в него засунуть пару <ключ, значение>: MD_ATTR attr; attr.name = q_attrs->value(r_attrs.indexOf("attr")); //это значение из QsqlQuery, оно типом QVariant, тут без ошибок m_metadata->attrs.insert(attr.name,attr); //а вот на эту строчку ругается !!! Текст ругательств: ../../../../programs/qtsdk-2010.05/qt/include/QtCore/qmap.h: In function ‘bool qMapLessThanKey(const Key&, const Key&) [with Key = QVariant]’: ../../../../programs/qtsdk-2010.05/qt/include/QtCore/qmap.h:781:9: instantiated from ‘QMapData::Node* QMap<Key, T>::mutableFindNode(QMapData::Node**, const Key&) const [with Key = QVariant, T = CMetadataManager::_MD_ATTR]’ ../../../../programs/qtsdk-2010.05/qt/include/QtCore/qmap.h:561:56: instantiated from ‘QMap<Key, T>::iterator QMap<Key, T>::insert(const Key&, const T&) [with Key = QVariant, T = CMetadataManager::_MD_ATTR]’ cmetadatamanager.cpp:121:48: instantiated from here Объясните, плз. Можно ли сделать то, что мне нужно (иметь пару ключ-значение моих типов) ? Что не так? |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 18.4.2024, 10:36 |