Voici un petit code.
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
struct MyStruct
{
	enum keyname {first,second};
 
	template<keyname _E>
	void make() const;
	template<>
	void make<first>() const
	{
	}
	template<>
	void make<second>() const
	{
	}
};
 
template<typename _T,_T::keyname _K>
struct MasterStruct
{
	template<typename P>
	void foo()(P const & v) const
	{
		v.make_key<_K>();
	}
};
J'ai un enum dans une structure et une méthode template sur cet enum avec spécialisation. Jusque là c'est OK.

Ensuite j'aimerais passer cette première structure en template d'une autre, et de là appeler une des méthodes spécialisées de la première structure. Bien sûr ça ne passe pas.
Comment faire ?
Merci.