使用模板类来避免创建静态库是一种好的做法吗
Is it good practice to use template classes to avoid creating a static library?
我正在将一个无锁容器从C移植到C++。我现在正在考虑将类模板化,只使用一个文件,这样最终用户就不必经历链接我的lib的麻烦。他只需要包括模板文件。
不过,我不确定我做的事情是否正确。这种做法好吗?
这很常见;Boost和许多其他C++库仅设计为头(尽管Boost的某些部分需要编译)。STL也是如此,它现在被合并到标准库中。
是。几乎整个C++标准库也都是这样写的,所以你掌握得很好。
这取决于代码的大小。唯一需要考虑的问题是从内联中获得的大小。如果你确保每个模板函数中的代码都很小,那么它应该是可以的。只是为了激励,所有的标准容器都只是表头。
确保您决定创建模板库是出于的正确原因。将容器库作为模板是一个很好的理由:标准C++库的所有容器都是作为模板完成的。简单地避免链接步骤本身不是一个好的理由。
相关文章:
- 有符号的int和int-有没有一种方法可以在C++中区分它们
- 如果 C 函数仍然可以间接执行(通过回调函数),那么将它声明为静态函数是否是一种不好的做法?
- 有没有一种快速的方法可以将类的所有静态成员归零?
- 常量静态成员函数:有另一种方法可用吗?
- 有没有一种通用方法来"unprotect"静态常量成员?
- 有没有一种方法可以使全局函数/静态成员函数一次可呼出
- 拥有具有相同名称的库的静态和动态版本是一种常见的做法
- 有没有一种方法可以对静态函数进行类型定义
- 在cuda中使用静态成员函数模板结构的另一种方法
- std::char_traits中使用的静态方法是否是一种继承
- 使用模板类来避免创建静态库是一种好的做法吗
- 有没有一种方法可以延迟初始化类的静态子对象
- 有没有一种更简单的方法来实例化静态库
- 在dll接口中使用静态类时消除C4251警告的一种方法
- c++在多大程度上是一种静态类型语言?
- 大量使用静态成员变量是一种好习惯吗?
- 将静态变量声明为函数/成员函数是一种不好的做法
- C++11提供了一种静态测试方法访问级别的方法
- C++:为了便于访问,在类中使用静态容器来包含指向其所有对象的指针是不是一种糟糕的做法
- 是否可以像重载另一种类型的成员访问运算符一样解析静态成员