c++ - 模板和可执行文件

标签 c++ templates

与没有模板的代码相比,编译并链接到 PE 中的模板代码是否会增加大小?我认为使用的每个模板实例都是有序打包的,因此如果需要,它会更快地输出匹配项。

很抱歉这个问题我对模板不太了解。

最佳答案

C++工作原理:
按使用量付费
模板代码仅为您使用/实例化的代码创建二进制文件。

仅仅因为您针对具有数百个 STL 容器的标准库进行编译,并不意味着您的目标代码包含所有这些容器,它只包含您使用的那些。

模板实现编译时多态性。为您使用不同数据类型进行的每个实例化创建模板函数的拷贝,模板类也是如此。此代码进一步编译以创建二进制文件。因此二进制文件的大小不会比没有模板的代码产生的大。

关于c++ - 模板和可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7037092/

相关文章:

c++ - 如何: Threading on windows platform (C++)

c++ - 面向 Eclipse 用户的 QtCreator

c++ - 检查一个类是否可以类型转换为另一个类

c++ - 从 Visual C++ 中的 unordered_map 继承时,模板参数的 sizeof() 不正确

ruby-on-rails - 正在缓存旧的 ActionMailer 模板?

c++ - CRTP + 特征类 : "no type named..."

c# - 如何为类 C 语言创建 Visual Studio 语法突出显示

用于列出所有可能的模板实现的 C++ 解决方法

C++ - is_default_constructible 是如何实现的?

c++ - 如何在不更改所有代码以使用 this-> 的情况下避免旧模板重库中的 'not declared' 错误?