Bonjour,
J'essaie de faire une classe utilisant l'opérateur d'indexation [] mais avec un template qui conditionne le type de retour. Les données sont de type QVariant, et donc l'idée serait de faire un truc du genre :
Code:int opt1=myclass<QVariant::Int>[index];
Quand j'essaieCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 class MyClass { template<typename T> T& operator [] (int option) { QVariant var; if(m_options.contains(option)) return m_options[option].value<T>(); else return var.value<T>(); } private: QList<QVariant> m_options; }
ou mêmeCode:int opt1=myclass<QVariant::Int>[1];
Mais le compilateur (MinGW) ne reconnaît pas la surcharge et me met :Code:int opt1=myclass.operator[]<QVariant::Int>(1);
no match found ... for operator[]
D'où la question : est-ce possible de surcharger l'opérateur [] avec un template ? ou est-ce que j'ai mal fait un truc
Merci d'avance
RV