使用模板类避免创建静态库是一种好习惯吗?

时间:2012-02-19 22:33:24

标签: c++ templates port

我正在将一个无锁的容器从C转移到C ++。我现在正在考虑模板化该类并仅使用一个文件,以便最终用户不必经历链接我的lib的麻烦。他只需要包含模板文件。

我不确定我是否做了正确的事情。这是好习惯吗?

4 个答案:

答案 0 :(得分:2)

这很常见; Boost和许多其他C ++库被设计为仅头文件(尽管Boost的某些部分需要编译)。 STL也是如此,它现在已合并到标准库中。

答案 1 :(得分:1)

是。几乎整个C ++标准库都是这样编写的,所以你掌握得很好。

答案 2 :(得分:1)

这取决于代码的大小。要考虑的唯一问题是您可以通过内联获得的大小。如果你确保每个模板函数中的代码都很小,那么它应该没问题。只是为了激励,所有标准容器都只是标题。

答案 3 :(得分:1)

确保您决定为正确的原因制作模板库。使容器库成为模板是一个很好的理由:标准C ++库的所有容器都是作为模板完成的。简单地避免链接步骤单独不是一个好理由。