I would like to write this:
template<typename T1, typename T2>
class OK
{
T1 t1;
T2 t2;
public:
template<typename TX> const TX & GetRef() const;
};
template<typename T1,typename T2>
template<>
const T1 & OK<T1,T2>::GetRef<T1>() const { return t1; }
Which VS10 fails to compile.
To check my understanding of template specialization, I tried and compiled this all right:
typedef int T1;
typedef char T2;
class OK
{
T1 t1;
T2 t2;
public:
template<typename TX> const TX & GetRef() const;
};
template<>
const T1 & OK::GetRef<T1>() const { return t1; }
What am I missing ? Is what I want to do even possible ?
No comments:
Post a Comment