"extern string-literal declaration"功能范围内

"extern string-literal declaration" within function scope

本文关键字:范围内 功能 string-literal extern declaration      更新时间:2023-10-16

from [dcl.link]#2 :

外部字符串文本声明

该段没有指定在函数范围内声明的任何特殊情况,但以下内容也没有编译:

void foo () { extern "C" int boo () ; }

从 G++ 输出:

错误:字符串常量之前应为非限定 ID

所以这是 G++ 的错误还是我错过了什么。?

linkage-specification 是声明的一部分,声明是声明序列的一部分,可以是命名空间主体翻译单元的一部分。

语法中没有任何地方允许在函数中使用声明,它几乎与声明相同,但值得注意的是缺少链接规范