我有以下课程模板:
template<int N>
class A {
virtual std::array<double, N> a(std::array<double, N> x) = 0
virtual ~A() { }
}
以及以下模板专业化:
class B : public A<3> {
std::array<double, 3> a(std::array<double, 3> x) {
return std::array<double, 3>(); // Returns (0,0,0) for now
}
}
我想用Doxygen记录这段代码。我已经为模板添加了一些文档,在查看A
的文档时显示正常:
/**
* @brief Calculate a vector quantity of length `N` based on another
*
* @param x The input vector
* @return A `std::array<double, N>` with the calculated vector quantity
*/
virtual std::array<double, N> a(std::array<double, N> x) = 0;
当我查看B
的文档时,如果我展开“继承自A
的公共成员函数”这一部分,它也会显示。
但是,我无法将其传播到B::a
的文档 - 当我向下滚动页面时,该函数列出了一个新的签名(指定std::array<double, 3>
而不是{{1}和所有其他未知的东西。如果我在N
中为方法添加一些文档,这是无可置疑的。
对于非模板类,我没有问题让文档“传播”,以便界面中的参数文档等也显示为具体实现。有没有办法为模板及其专业化实现相同的目标?怎么样?