我有一个MyClass类,它是在typename T上模板化的.但是在内部,我想要一个在另一个类型TT上模板化的方法(与T无关).
阅读/修补后,我发现了以下符号:
template <typename T> class MyClass { public : template<typename TT> void MyMethod(const TT & param) ; } ;
由于风格原因(我喜欢在一个头文件中使用模板化类声明,另一个头文件中有方法定义),我不会在类声明中定义方法.所以,我必须把它写成:
template <typename T> // this is the type of the class template <typename TT> // this is the type of the method void MyClass<T>::MyMethod(const TT & param) { // etc. }
我知道我必须“声明”该方法中使用的类型名称,但不知道具体如何,并通过试验和错误找到.
上面的代码在Visual C 2008上编译,但是:这是在T上模板化的类中使用模板化方法的正确方法吗?
作为奖励:这种代码背后是否存在隐藏的问题/意外/限制? (我想专业化写作可能很有趣)
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。