模板类的嵌套类定义是否属于ipp文件?

时间:2015-06-04 03:05:25

标签: c++

假设我有一个模板化的类,无论出于什么原因超出了这个问题的范围,它都有一个嵌套的类声明:

// outer.hpp

template <typename T>
class Outer
{
  class X;

  void foo(); // this is defined in an ipp file
};

// should this also go into the ipp file?
template <typename T>
class Outer<T>::X
{
};

我对我应该放置X的定义感到有些困惑。它是否与成员函数定义一起属于ipp文件,或者它是否在头文件中有意义?

1 个答案:

答案 0 :(得分:0)

为了清楚起见,就编译而言,它并不重要。

通常,所有声明都应该在标题中,因为这将保持可以在标题中找到类的用法的模式。

例如,如果您使用Doxygen,您将需要它生成有关内部类的文档(无需更改设置)。