4

我正在重写我的 Windows C++ 本机库 (自 2002 年以来一直在努力),并考虑到公开发布。在过去的 10 年里,我一直是这 150 多个 KLOC 的唯一受益者,我觉得其他人也可能会从中找到很好的用途。

目前,整个库都是相当模板化的,并且只有标题。这意味着所有代码都在类的主体中。这不是很容易管理,但没关系。

在阅读了几个 C++ 库编码指南之后,我很想将其分解为.hpp+.inl文件。对一些类进行了实验性的这样做,它确实增加了可读性并使其更容易被其他人处理。我知道任何时候一切都在哪里。但是其他用户可能想要快速了解类声明......并且仅在必要时定义(调试)

问题
将成员定义与类模板的类定义分开有什么优点/缺点?是否有普遍接受的做法。

这对我来说很重要,因为它是单向的。我以后不能以其他方式重构它,所以任何反馈都很重要......

4

1 回答 1

0

我在另一个问题中找到了答案。

问题:我什么时候应该考虑只制作一个库头文件?-答案就在这里^

答案是我会将它分解成文件,.cpp.hpp准备好编译为仅作为头文件和静态库或 DLL 的编译器。

@史蒂夫杰索普

如果您认为您的非模板库可能只是标头,请考虑将其分成两个文件,然后提供包含.h.cpp的第三个文件 (带有包含保护)

然后,在许多不同的 TU 中使用您的库并怀疑这可能会花费大量编译时间的任何人都可以轻松地进行更改以对其进行测试。

^这是一个很棒的主意。 这将需要更多的工作,但它是如此多才多艺。

更新

显式实例化文件中的模板类很重要.cpp

于 2013-08-06T06:46:57.493 回答