[gelöst] QMultiHash & QVariant - compiler error C2665
Verfasst: 26. Februar 2007 14:40
Hallo,
folgender Code erzeugt mir den Compilerfehler C2665:
Kann mir jemand von euch vielleicht einen Tips geben, wie ich diesen Fehler verhindern kann?
Der Schlüssel für den Hash muss aber vom Typ QVariant sein, da erst bei Erstellung des Hashes der Typ des Schlüssels feststeht.
Qt Version: 4.1.4
Compiler: Microsoft Visual Studio .NET 2005
Fehlerausgabe des Compilers:
folgender Code erzeugt mir den Compilerfehler C2665:
Kann mir jemand von euch vielleicht einen Tips geben, wie ich diesen Fehler verhindern kann?
Code: Alles auswählen
QVariant key;
QMultiHash< QVariant, QWidget* > test;
QList< QWidget* > values = test.values( key );
Qt Version: 4.1.4
Compiler: Microsoft Visual Studio .NET 2005
Fehlerausgabe des Compilers:
Code: Alles auswählen
c:\qt\4.1.4_static\include\qtcore\../../src/corelib/tools/qhash.h(743) : error C2665: 'qHash' : none of the 16 overloads could convert all the argument types
c:\qt\4.1.4_static\include\qtcore\../../src/corelib/tools/qhash.h(37): could be 'uint qHash(char)'
c:\qt\4.1.4_static\include\qtcore\../../src/corelib/tools/qhash.h(38): or 'uint qHash(uchar)'
c:\qt\4.1.4_static\include\qtcore\../../src/corelib/tools/qhash.h(39): or 'uint qHash(signed char)'
c:\qt\4.1.4_static\include\qtcore\../../src/corelib/tools/qhash.h(40): or 'uint qHash(ushort)'
c:\qt\4.1.4_static\include\qtcore\../../src/corelib/tools/qhash.h(41): or 'uint qHash(short)'
c:\qt\4.1.4_static\include\qtcore\../../src/corelib/tools/qhash.h(42): or 'uint qHash(uint)'
c:\qt\4.1.4_static\include\qtcore\../../src/corelib/tools/qhash.h(43): or 'uint qHash(int)'
c:\qt\4.1.4_static\include\qtcore\../../src/corelib/tools/qhash.h(44): or 'uint qHash(ulong)'
c:\qt\4.1.4_static\include\qtcore\../../src/corelib/tools/qhash.h(52): or 'uint qHash(long)'
c:\qt\4.1.4_static\include\qtcore\../../src/corelib/tools/qhash.h(53): or 'uint qHash(quint64)'
c:\qt\4.1.4_static\include\qtcore\../../src/corelib/tools/qhash.h(61): or 'uint qHash(qint64)'
c:\qt\4.1.4_static\include\qtcore\../../src/corelib/tools/qhash.h(62): or 'uint qHash(QChar)'
c:\qt\4.1.4_static\include\qtcore\../../src/corelib/tools/qhash.h(63): or 'uint qHash(const QByteArray &)'
c:\qt\4.1.4_static\include\qtcore\../../src/corelib/tools/qhash.h(64): or 'uint qHash(const QString &)'
c:\qt\4.1.4_static\include\qtcore\../../src/corelib/kernel/qabstractitemmodel.h(323): or 'uint qHash(const QModelIndex &)'
c:\qt\4.1.4_static\include\qtgui\../../src/gui/itemviews/qitemselectionmodel.h(162): or 'uint qHash(const QItemSelectionRange &)'
while trying to match the argument list '(const QVariant)'
c:\qt\4.1.4_static\include\qtcore\../../src/corelib/tools/qhash.h(741) : while compiling class template member function 'QHashNode<Key,T> **QHash<Key,T>::findNode(const Key &,uint *) const'
with
[
Key=QVariant,
T=QWidget *
]
c:\qt\4.1.4_static\include\qtcore\../../src/corelib/tools/qhash.h(576) : while compiling class template member function 'QList<T> QHash<Key,T>::values(const Key &) const'
with
[
T=QWidget *,
Key=QVariant
]
c:\qt\4.1.4_static\include\qtcore\../../src/corelib/tools/qhash.h(785) : see reference to class template instantiation 'QHash<Key,T>' being compiled
with
[
Key=QVariant,
T=QWidget *
]
..\..\src\Models\ExtTreeProxyModel.cpp(97) : see reference to class template instantiation 'QMultiHash<Key,T>' being compiled
with
[
Key=QVariant,
T=QWidget *
]