在类声明中定义模板类的成员函数与外部之间是否存在差异?
内部定义:
template <typename T>
class A
{
public:
void method()
{
//...
}
};
Run Code Online (Sandbox Code Playgroud)
在外面定义:
template <typename T>
class B
{
public:
void method();
};
template <typename T>
void B<T>::method()
{
//...
}
Run Code Online (Sandbox Code Playgroud)
对于非模板类,这是内联和非内联方法之间的区别.模板类也是如此吗?
我的大多数同事的默认设置是在类中提供定义,但我总是更喜欢类外的定义.我的偏好是否合理?
编辑:请假设所有上述代码都在该类的头文件中提供.