Можно ли определить значение QMetaType :: Type аргумента шаблона.
Я попробовал это:
template <class T> class MyClass { public: int getType() { return QMetaType::type(typeid(T).name()); } };
Но это всегда возвращает 0 (QMetaType :: UnknownType), потому что Qt использует имена других типов, чем компилятор.
Это должно работать следующим образом:
MyClass<int>().getType(); // 2 (QMetaType::Int) MyClass<QString>().getType(); // 10 (QMetaType::QString) MyClass<QRect>().getType(); // 19 (QMetaType::QRect) MyClass<MyType>().getType(); // 1024 (Set by qRegisterMetaType)
Задача ещё не решена.
Других решений пока нет …