gpt4 book ai didi

c++ - 解决多定义的内联函数是一个定义明确的东西吗?

转载 作者:太空狗 更新时间:2023-10-29 19:43:18 27 4
gpt4 key购买 nike

我正在构建一个仅包含模板化 header 的 C++11 库。正如我所读到的,我应该将我的成员函数定义为 inline 以保证在翻译单元中不会出现定义的多重存在。

这是 inline 关键字的明确使用吗?我曾经认为 inline 是性能相关的东西。我怀疑为此目的使用 inline 就像打开后门一样。使用它有什么缺点吗?还有其他解决方案吗?

最佳答案

如果您阅读例如this inline reference您将看到具有外部链接的函数的属性列表,第二点说:

It has the same address in every translation unit.

这意味着将一个函数声明为inline 将导致该函数在所有translation units 中只存在一个实例。 (即从源文件生成的所有目标文件)。

由于函数只有一个实例存在,因此不会出现任何多重定义错误。

关于c++ - 解决多定义的内联函数是一个定义明确的东西吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34849459/

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