模板类中模板方法的声明模板定义

Sim*_*ker 13 c++ templates

有没有人知道模板类中的声明外模板方法的语法.

例如:

template<class TYPE>
class thing
{
public :
  void do_very_little();

  template<class INNER_TYPE>
  INNER_TYPE do_stuff();
};
Run Code Online (Sandbox Code Playgroud)

第一种方法是定义的:

template<class TYPE>
void thing<TYPE>::do_very_little()
{
}
Run Code Online (Sandbox Code Playgroud)

我怎么做第二个,"do_stuff"?

CMi*_*nus 29

template<class TYPE>
template<class INNER_TYPE>
INNER_TYPE thing<TYPE>::do_stuff()
{
    return INNER_TYPE();
}
Run Code Online (Sandbox Code Playgroud)

试试这个.


And*_*erd 28

template<class TYPE>
template<class INNER_TYPE>
INNER_TYPE thing<TYPE>::do_stuff()
{
    return INNER_TYPE();
}
Run Code Online (Sandbox Code Playgroud)

看这个页面:

http://msdn.microsoft.com/en-us/library/swta9c6e(VS.80).aspx