C++ 做c++;模板使用堆?

C++ 做c++;模板使用堆?,c++,templates,heap-memory,C++,Templates,Heap Memory,根据本演示,模板不占用堆,开销为零 这是真的吗,你在哪里可以查到?通常,如何计算您使用的C++特性? 模板是一种编译时功能。生成的可执行文件(或库)不包含模板。它包含用于不同模板实例化的代码。模板实例化的类型越多,可执行文件可能越大。这并不意味着模板会使可执行文件变大,不,模板只会使源代码变短 显然,堆与可执行文件大小或模板无关。模板是代码,而不是数据。只有数据才能进入堆。编译时堆还是运行时堆?我想你把这两件事搞混了。C++具有很长的编译时间,因为它有很多工具可以在编译中完成更多的工作,例如使用

根据本演示,模板不占用堆,开销为零

这是真的吗,你在哪里可以查到?通常,如何计算您使用的C++特性?
模板是一种编译时功能。生成的可执行文件(或库)不包含模板。它包含用于不同模板实例化的代码。模板实例化的类型越多,可执行文件可能越大。这并不意味着模板会使可执行文件变大,不,模板只会使源代码变短


显然,堆与可执行文件大小或模板无关。

模板是代码,而不是数据。只有数据才能进入堆。编译时堆还是运行时堆?我想你把这两件事搞混了。C++具有很长的编译时间,因为它有很多工具可以在编译中完成更多的工作,例如使用模板。通常,无论是“手动”编写类/函数还是使用模板,生成的可执行文件都应该是相同的。@RaymondChen已经给出了答案。您链接的演示文稿长度超过2小时。你能给出给出这些信息的时间戳吗?这个问题与“模板是否使用紫色”的问题非常相似?在这两种情况下,答案都是“在您的IDE中”。如果这是您的问题,模板可以调用
new
malloc
。从这个意义上讲,模板本身不“使用”堆,就像
#define
不“使用”堆一样。