C++编译器不喜欢"using INLINE = extern inline"

C++ compiler does not like "using INLINE = extern inline"

本文关键字:extern inline INLINE using 编译器 不喜欢 C++      更新时间:2023-10-16

有很多关于使用inline以及如何正确执行此操作以实现所需意图的信息,例如这里(我目前正在用作参考(C中的内联函数。

当我尝试实现页面中的特殊内容时,我收到编译器错误

using INLINE = extern inline;

甚至只是

using INLINE = extern;

编译器说"extern 之前的预期类型说明符">

我想知道的是为什么我可以这样使用using

是因为using真的只是为类型和替换保留的吗?

后回答

非常感谢! 我完全错过了我正在阅读 C 参考的事实。 这是个好消息,因为从我正在阅读的内容来看,似乎没有一种非常好的方法来处理事情,但可能是这样,因为与他们现在在 C++11 中所做的相比,它已经过时了。

是因为

使用实际上只是为类型和替换保留的吗?

我不知道你所说的替换是什么意思,但是对类型的保留是的。别名声明用于声明类型的新名称。一对说明符不构成类型。您甚至无法通过在那里表面上添加类型名称来使其工作,因为externinline说明符仅适用于对象和函数标识符,而不适用于其关联的类型。

本文使用宏(#define(,因为令牌替换是创建用户定义说明符的唯一方法,就像你想要的那样。

还值得注意的是,在C++inlineextern inline是一回事。只有在 C(与C++不同的语言,以及链接文章的主题(中,inline并不意味着链接,要求您指定extern