C++ 嵌套名称说明符的名称查找规则
我已经阅读了以下内容(3.4.3/1): 如果嵌套名称说明符中的::scope解析运算符不可用 前面有decltype说明符,查找前面的名称:: 仅考虑其专门化的名称空间、类型和模板 都是类型 嵌套名称说明符的查找规则是什么 例如:C++ 嵌套名称说明符的名称查找规则,c++,language-lawyer,qualified-name,C++,Language Lawyer,Qualified Name,我已经阅读了以下内容(3.4.3/1): 如果嵌套名称说明符中的::scope解析运算符不可用 前面有decltype说明符,查找前面的名称:: 仅考虑其专门化的名称空间、类型和模板 都是类型 嵌套名称说明符的查找规则是什么 例如: #include <iostrem> namespace A { int j=5; } int main() { std::cout << A::j //I assume that A will be searched a
#include <iostrem>
namespace A
{
int j=5;
}
int main()
{
std::cout << A::j //I assume that A will be searched as just *unqualified-name* appeared inside the function which is a member of namespace
}
#包括
名称空间A
{
int j=5;
}
int main()
{
std::cout是的,它是归纳式的,我想说的是,它只是从措辞上看出来的。首先,让我们根据:
的关联性添加完整的括号:
(std::cout) << ((A::B)::j)
(std::cout)@ldgorman我的问题没有答案。有趣的是,就形式语法而言,A::j
中的A
实际上并不是一个非限定id…@aschepler那么A是什么意思呢?很清楚,(A::B)::j
不是有效的代码;括号只是表示解析的工作方式。
(std::cout) << ((A::B)::j)