【发布时间】:2011-05-13 15:03:51
【问题描述】:
struct A {};
typedef A B;
struct C { friend struct B; };
GCC 4.7.0 20110427 告诉我error: using typedef-name 'B' after 'struct'。
到目前为止,这似乎是不言自明的;毕竟,我的示例代码试图声明一个名为 B 的 struct 并成为其好友,而实际上它不是 struct-key。
但是,如果A 实际上是一个复杂、冗长的模板元黑客混乱,我必须写friend struct A;,这是不可取的。
我是否遗漏了什么,或者我们实际上可以不 friend 通过类型别名进行类型吗?如果不是,是否有任何特殊原因,还是只是语言的怪癖?
This question 之前提出过这个问题,但已经过时,并且对有关 C++0x 的问题做出了似乎不正确的断言。 这个问题是关于 C++0x FDIS。
【问题讨论】:
-
哦,哈……这是我。大声笑....