#include <iostream>
enum Status{
A,
B
};
enum Version{
X,
Y
};
template<Status S, Version V>
struct Class{
void Fx(void){ std :: cout << “Fx” << std :: endl; }
void Gx(void){ std :: cout << “Gx” << std :: endl; }
};
template<>
void Class<A, X> :: Gx(void){ std :: cout << “Gx: A, X” << std :: endl; };
int main(void){
Class<A, X> c;
c.Fx();
c.Gx();
Class<B, X> d;
d.Fx();
d.Gx();
return 0;
}
Fx
Gx: A, X
Fx
Gx
なるほろ!