::运算符是否可以出现在与限定名称查找中的范围解析不同的上下文中?

6 c++ scope-resolution operator-keyword

已知范围解析运算符用于限定名称查找的目的.但是返回的价值是::多少?据我所知,它是postfix一元运算符.考虑以下:

namespace A
{
    //something
}

A:: //error: expected unqualified-id before ‘int’

int main(){ }
Run Code Online (Sandbox Code Playgroud)

你能解释一下这种行为吗?

Man*_*726 5

范围解析运算符::只是一个合成运算符,没有其他语义.也就是说,存在仅对语言的语法有贡献的运算符,以及有助于程序的语义/运行时行为的其他运算符,并且可以自定义语义.那是运营商超载.

  • -1"在C和C++ int中是默认类型",不仅仅是在C中.在C++中,隐式int从一开始就被删除了.C++98§C.1.5/ 4"更改:禁止隐式int.在C++中,*decl-specifier-seq*必须包含*类型说明符*." 相反,OP的示例代码可能会生成一个包含单词"int"的诊断,因为声明读起来像`A :: int main`. (2认同)