我試圖讓下面的工作:自參照模板
template< typename T >
class MyTemplate {
public:
void myMethod(const MyTemplate< typename U > &)
{
return;
};
};
在myMethod的說法MyTemplate< typename U >
表示與不同類型的實例化的類。這甚至有可能嗎?
我試圖讓下面的工作:自參照模板
template< typename T >
class MyTemplate {
public:
void myMethod(const MyTemplate< typename U > &)
{
return;
};
};
在myMethod的說法MyTemplate< typename U >
表示與不同類型的實例化的類。這甚至有可能嗎?
是的,這是可能的。語法如下:
template< typename T >
class MyTemplate {
public:
template< typename U >
void myMethod(const MyTemplate<U> &)
{
return;
};
};
這是一個常見的構造。有關示例,請參見std::shared_ptr
's constructors。
您的意思是'const MyTemplate &'? – WhozCraig
無論何處 - 示例用法將是:'MyTemplate < int > a; MyTemplate < float > b; a.myMethod(b);' – Andy