Да, вот еще более простой (или вызывающий) пример
C++ (Qt)
#include <QSet>
#include <QString>
uint qHash( const std::string & str )
{
return qHash(QString::fromStdString(str));
}
int main( void )
{
QSet<std::string> set;
set.insert(std::string("abc"));
return 0;
}
Не компилится. Придется выносить qHash в хедер и включать "до того". Оказывается надо было делать спецификацией
C++ (Qt)
template<>
uint qHash<std::string>( const std::string & str )
{
return qHash(QString::fromStdString(str));
}
Но что тогда писать до спецификации
template<class T>
uint qHash( const T & t )
{
???
}
Чтобы компилятор вякал если нужного qHash нету
Спасибо