c++ - "extern string-literal declaration"在函数范围内

标签 c++ language-lawyer extern linkage

来自[dcl.link]#2 :

extern string-literal declaration

该段落没有指定函数作用域内声明的任何特殊情况,但以下内容也不会编译:

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

来自 g++ 输出:

error: expected unqualified-id before string constant

这是 g++ 的错误还是我错过了一些东西?

最佳答案

linkage-specificationdeclaration 的一部分这是 declaration-seq 的一部分它可以是 namespace-body 的一部分或 translation-unit .

语法中不允许在函数中使用 block-declaration ,这与声明几乎相同,但值得注意的是缺少链接规范

关于c++ - "extern string-literal declaration"在函数范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43117798/

相关文章:

c++ - Emscripten 以及从 std::bind 到 std::function 的转换

c++ - 最好的 C++ XML 库,快速设置

c++ - C++ 中 vector 的 vector 的使用 & push_back( )

c++ - 如何将模板类添加到堆栈数组?

c++ - 错误 C2070 - 未指定外部数组大小。 - 传递给 MACRO 的数组

c++ - 成员初始化中表达式的求值是否相对于彼此排序?

c++ - 在另一个成员函数的尾随返回类型中获取推导成员函数的 decltype 是否格式正确?

c++ - 如果类包含基类的成员,编译器可以利用空基优化吗?

C#:在 shlwapi.dll 中实现或替代 StrCmpLogicalW

c++ - 声明外部类对象的问题