我正在将一个无锁的容器从C转移到C ++。我现在正在考虑模板化该类并仅使用一个文件,以便最终用户不必经历链接我的lib的麻烦。他只需要包含模板文件。
我不确定我是否做了正确的事情。这是好习惯吗?
答案 0 :(得分:2)
这很常见; Boost和许多其他C ++库被设计为仅头文件(尽管Boost的某些部分需要编译)。 STL也是如此,它现在已合并到标准库中。
答案 1 :(得分:1)
是。几乎整个C ++标准库都是这样编写的,所以你掌握得很好。
答案 2 :(得分:1)
这取决于代码的大小。要考虑的唯一问题是您可以通过内联获得的大小。如果你确保每个模板函数中的代码都很小,那么它应该没问题。只是为了激励,所有标准容器都只是标题。
答案 3 :(得分:1)
确保您决定为正确的原因制作模板库。使容器库成为模板是一个很好的理由:标准C ++库的所有容器都是作为模板完成的。简单地避免链接步骤单独不是一个好理由。