函数范围内的“extern string-literal declaration”

时间:2017-03-30 12:24:51

标签: c++ language-lawyer extern linkage

来自[dcl.link]#2

  

extern string-literal declaration

该段落未在函数范围内指定任何特殊情况进行声明,但以下内容也未编译:

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

来自g ++输出:

  

错误:字符串常量之前的预期unqualified-id

这是一个g ++的错误,或者我错过了什么。?

1 个答案:

答案 0 :(得分:5)

linkage-specificationdeclaration的一部分,declaration-seqnamespace-body的一部分,可以是translation-unitblock-declaration的一部分。

语法中没有任何地方允许使用{{3}}的函数,它与声明几乎相同,但值得注意的是 linkage-specification