Bonjour,
J'ai besoin de définir des méthodes statiques templates qui utilisent le scope d'une classe template et dont les parametres sont déduis à la compilation. Illustration :
Le scope est important, je ne veux pas définir ce type de methode a l'extérieur de la classe. Est ce que c'est réalisable ? Si oui comment ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 template <typename T> class type { public: template<typename U> static type<U> operation(const type<U>& x, const type<U>& y) { // par exemple return x.a*y.a; } T a; }; // et un appel type<float> a = 5.0f; type<float> b = 4.0f; type<float> c = type::operation(a,b); // c = 20.0f // et non (comme le voudrais g++) type<float> c = type<float>::operation(a,b); // c = 20.0f // ou encore type<int> c = type<float>::operation(a,b); // c = 20.0f // etc ...
Merci d'avance !
Partager