1 #include <QtCore/QString> 2 QT_BEGIN_NAMESPACE 3 struct A { }; 4 struct E { }; qHash(A)5uint qHash(A) { return 0; }; // OK 6 namespace NS { 7 8 struct B { struct B2 {}; struct B3 {}; }; qHash(B)9 uint qHash(B) { return 0; }; // OK qHash(B::B2)10 uint qHash(B::B2) { return 0; }; // OK 11 namespace NS2 { 12 struct C {}; qHash(C)13 uint qHash(C) { return 0; }; // OK 14 } qHash(NS2::C)15 uint qHash(NS2::C) { return 0; }; // Warn qHash(::A)16 uint qHash(::A) { return 0; } // Warn qHash(B::B3)17 uint qHash(B::B3) { return 0; }; // OK 18 enum class EnumClass 19 { 20 One 21 }; qHash(EnumClass)22 uint qHash(EnumClass) { return 0; } // OK 23 } qHash(NS::B)24uint qHash(NS::B) { return 0; } // Warn qHash(NS::B *)25uint qHash(NS::B *) { return 0; } // Warn qHash(NS::B::B3)26uint qHash(NS::B::B3) { return 0; }; // Warn 27 28 29 QT_END_NAMESPACE qHash(E)30uint qHash(E) { return 0; } // Warn 31