两个以前没有注意的C&C++语法

来源:互联网 发布:塘沽软件开发 编辑:程序博客网 时间:2024/05/22 13:36
1. nameless union
struct NamelessU{
union{
int i;
};
int a;
};
struct NameU1{
union Name{
int i;
};
int a;
};
struct NameU2{
union Name{
int i;
}b;
int a;
};
nameless union: 8, name union1: 4, name union2: 8
以前一直把 nameless union 和第二种情况混在一起了。

2. Koenig查找(ADL)
namespace NP0{
void f2( int ) {std::cout << "f2(int) called\n";}
}
namespace NP{
struct S{
  enum E {e1};
  friend void NP0::f2(int);
};
}
int main()
{
f2(NP::S::e1);
}
通过参数找到函数声明, 这个应该是能编译通过的。
原创粉丝点击