问题理解c ++中的模板

hid*_*yat 5 c++ compiler-construction templates

在使用模板函数之前,不会编译模板代码.但它在哪里保存已编译的代码,它是否保存在首先使用模板函数的目标文件中?

例如,main.cpp从文件test.h调用模板函数,编译器生成一个目标文件main.o,是main.o文件中的模板函数吗?因为模板代码没有内联,是吗?

Kla*_*aim 4

它完全依赖于编译器实现。大多数编译器会在内联或类似 cpp 的文件中生成代码,然后使用该文件进行编译。有时,通过优化设置,一些编译器甚至会重用相同的代码,而不是为每个 cpp 重新创建它。

因此,您必须查看编译器的文档以获取更多详细信息。

  • 这是实际的正确答案,而不是 OP 接受的答案。 (3认同)