【发布时间】:2015-05-12 22:05:10
【问题描述】:
我正在使用 doxygen 来记录 C++ 库。
假设我有几个类 A、B、C 等,它们共享一组公共方法 A::m1(), B::m1(), ...etc。这些方法在每个类中基本上做同样的事情。
我想要这些常用方法的单一实现。
另一种方法是类(A、B、C 等)继承具有公共方法的公共类。然而,根据我的测量,这种方法在与多继承结合时意味着性能上的轻微牺牲。其实我的一些类继承了其他类,所以多继承是肯定的。
所以,为了“分解”常用方法,我将它们写在一个大宏中。比如:
define COMMON_METHODS() \
void m1() { ..- } \
void m2() { ... \
然后,在每个班级,我都放了这个宏。
我知道这可能不是最好的技术(尽管性能非常好)。
现在,我还想为常用方法编写一个文档,并且(文档)由 doxygen 管理和生成。
不幸的是,我找不到或想出某种方式(在 doxygen 的上下文中)来编写一次文档。
因此,如果有人能提供一些技巧或想法让我编写一次文档,我将不胜感激。
问候
【问题讨论】:
-
一种选择:遭受轻微的性能损失以换取更好的代码可维护性。
-
CRTP 可以帮助您保持常用方法实现 DRY。