为什么不允许对成员函数的内联定义进行额外的限定
Why is an extra qualification for inline definitions of member functions disallowed?
如果我们看一下成员声明的语法,它会得到这样的内容:
会员声明: 函数定义 ;函数定义: attribute-specifier-seqopt decl-specifier-seqopt declarator virt-specifier-seqopt function-body说明符: noptr-declarator 参数和限定符尾随返回类型
这不允许语法:
struct B {
A B::*B::read();
};
为什么它不允许在函数名称前使用可选nested-name-specifier ::
?
语法根本不禁止声明由嵌套名称说明符s 命名的实体。
事实上,对于friend
声明,它必须:
class A
{
friend void OtherNamespace::foo();
};
这是一个成员声明,声明说明符friend
。它被覆盖了(粗体强调我的(:
成员声明:
属性说明符-seq opt deccl-specifier-seqopt成员声明符列表opt ;
和
成员声明器:
声明符 virt-specifier-seq opt pure-specifieropt
现在,声明符具有以下语法:
声明符:
PTR 声明符PTR 声明符:
noptr-declaratornoptr-declarator:
声明符标识声明符 ID:
...
选择身份表达式
最后,一个 id 表达式是
id-expression:
限定 id
相关文章:
- std::带有自定义缓冲区的 iostream 不允许我写入
- 错误:在第 6 行'{'标记之前,此处不允许使用函数定义
- 不允许在类定义之外重写
- error dllimport 函数的定义不允许在一个特定的联合中,而其他类、结构和联合将按预期导出
- C++:为什么允许在另一个函数中声明函数,而不允许在函数定义中声明?
- HTTP POST 请求不允许我定义上下文类型
- 为什么不允许通过 decltype(lamda) 定义对象,我该如何改进它?
- 为什么不允许在非推导上下文中使用基类定义,以及如何解决这个问题
- 错误 - 此处不允许在 { 令牌之前使用函数定义
- 此处不允许在"{"标记之前进行函数定义"
- 这里不允许函数定义:void encryption(ifstream encrypt_file,ofstream key
- 为什么较新版本的C++不允许在类声明中定义纯方法?
- G++ 不允许我定义名为 "major" 的成员函数
- 错误 C2491:不允许定义 dllimport 函数
- 不允许对自定义类型进行多次隐式转换?
- 定义或重新声明函数内不允许'GetInstance'
- 正在导出模板内联函数-不允许定义函数dllimport
- 不允许定义类的多个实例
- 不允许在类定义之外使用好友
- 自定义验证器不允许default_value