gpt4 book ai didi

c++ - 同时具有 'extern' 和 'inline' 说明符的变量

转载 作者:行者123 更新时间:2023-12-01 14:15:49 25 4
gpt4 key购买 nike

我无法从 stackoverflow 或其他地方找到有关此主题的任何信息。我知道 extern 可以与头文件中的命名空间范围变量一起使用,以消除定义 int foo; 来自裸声明 extern int foo; 的歧义.这样做是为了避免破坏单一定义规则,以防多个文件 #include 同一个头文件。

在 C++17 中,可以对全局变量使用 constexpr inline foo;,这应该比旧方法更好。可以使用extern inline const/constexpr foo;,两者都编译没有错误,但我不知道extern是否在语义上有任何区别.

那么什么时候应该使用 extern inlinevariables 呢? C++17 中的最佳实践是什么?

最佳答案

基于措辞here :

Inline const variables at namespace scope have external linkage by default (unlike the non-inline non-volatile const-qualified variables)

似乎永远不需要将 extern 添加到 inline const(expr) 变量。

关于c++ - 同时具有 'extern' 和 'inline' 说明符的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62682772/

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