Bonjour,
Je souhaite créer une fonction (Peek) qui soit friend d'une classe template (MyClass), avec une relation one-to-one. Après avoir pas mal cherché sur Internet, j'ai cette écriture ... qui ne compile pas (C:B). Le message d'erreur est "expected initialization before '<' ".
Est-ce parce que la classe template doit être spécialisée avant (mais cela me semble surprenant). Avez-vous une idée ?
La classe:
Mon main avec la fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 template <typename T> class MyClass { public: MyClass(T aT); void Show(); friend void Peek(const MyClass<T> &mC); virtual ~MyClass(); private: T t; };
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 #include "MyClass.h" using namespace std; template <typename T> class MyClass; template <> void Peek<typename T>(const MyClass &mC) { cout << "In Peek" << mC.t << endl; } int main() { MyClass<int> myC(3); Peek(myC); return 0; }
Partager