T型的结构范围是什么
What is structural scope of a type T?
我在维基百科上找到了它:
的结构范围T(可用于定位友元函数)
有人能解释一下是什么吗?谷歌帮不了什么忙。
因为它提到了友元查找,所以在这种情况下,"结构范围"似乎是指类T
的范围(当T
是类时)或封闭类的范围(如果T
是类内部声明的成员类型时)。整个段落的措辞听起来相当奇怪,因为C++语言没有正式将类类型称为"结构类型",也没有正式定义"结构范围"。除此之外,它似乎将类范围称为"名称空间",这是不正确的。
提到朋友,显然意味着类似的情况
struct T {
friend void foo(T) {}
};
int main() {
T t;
foo(t);
}
或
struct T {
enum E { A };
friend void foo(E) {}
};
int main() {
T::E e = T::A;
foo(e);
}
在这些情况下,只有ADL检查类T
的作用域并在那里显式查找友元函数,才能解析main
中对foo
的调用。如果没有ADL,foo
对main
是不可见的。
相关文章:
- 我不知道这条线是做什么的
- 私有在函数定义/实现的返回值范围内是什么意思 (c++)?
- 这个构造函数是做什么的
- 叮叮当当的'range-loop-analysis'诊断是关于什么的?
- 为什么这个循环变量在循环范围之外是可访问的
- qt c++ 中的这句话是做什么的
- 这是做什么的?C++
- "+="操作员究竟是做什么的?
- 运算符重载中变量的数据类型和范围应该是什么
- C 运算符在参考vars上,这是做什么的
- gen~ phasor() 是做什么的?(将 Max/MSP gen 转换为 C++)
- 统一实际分布的范围限制是多少
- 'auto f(params) -> decltype(..., void())' 中的 'void()' 是做什么的?
- 除了内存管理,QObject的父级是做什么用的?
- Xor -> 和 -> Xor 是做什么的?
- 这是做什么的?C++
- const 类 * const Function() 第二个 const 是做什么的
- 在C++中实现随机预言机(输出在范围内是随机的,但对于相同的输入输出是相同的)
- "using namespace"到底是做什么的?
- 在C++11中,用什么方法对数组进行简单的范围管理是最干净的