gpt4 book ai didi

c++ - 模板是如何工作的,它们总是内联的吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:25:45 25 4
gpt4 key购买 nike

如果它们是内联的,我就能理解它是如何工作的。但如果不是,它是如何工作的?是否所有目标文件都有自己的拷贝,例如函数模板?

最佳答案

模板将按照 inline 的标准含义进行内联,这与 One Definition Rule 的关系比与实际代码内联的关系更大。也就是说,如果模板函数在多个翻译单元中定义,链接器不会提示,它只会选择一个(注意:随机一个,如果您在不同翻译单元中提供模板的不同定义,当前编译器不会提示! ) 并将其保留在最终的二进制文件中。

现在,与所有其他 inline 函数一样,编译器可以决定实际避免函数调用并在调用位置内联函数是个好主意,或者它可能会确定这不是一个好主意(大函数,一些编译器不使用嵌套循环内联函数......不管是什么原因)然后它不会执行实际的代码内联。

关于c++ - 模板是如何工作的,它们总是内联的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5431362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com