C++ 模板编译

标签 c++ templates compilation

我没有回答与模板相关的问题。基本上,编译器是如何编译模板的。我用谷歌搜索但没有找到答案。谁能帮帮我

最佳答案

模板本身不被编译,模板的特定实例被编译。模板可以通过简单地使用或显式实例化来实例化

例如给定一个函数模板:

template<class T> void f() {}

这只是一个函数的模板,您可以使用它:

f<int>(); // compiler will instantiate a concrete f<int>()

...导致正在编译该特定实例。或者,您可以显式实例化它:

template void f<int>();

然而,原始模板从未被编译,它仅用于创建具体实例。

关于C++ 模板编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3386968/

相关文章:

c++ shared_ptr继承内存问题 "Bad deallocation"

python - OpenCV 的 Python ORB 模块的掩码格式是什么?

C++:在编译时消除这段代码的歧义?

c++ - 多级嵌套模板。我如何让它工作?

windows - 创建一个 python 脚本来编译和运行一个 c++ 文件

linux - 如何从 linux utils 编译 *only* uuid

c++ - 在 2D 中用 3 个给定点计算精确样条。 C++

c++ - 是否有编译器警告会在函数返回后捕获代码?

templates - AngularJS : Creating a directive that repeats a transcluded template

Java 编译器错误 (OSX)