struct A {};
typedef A B;
struct C { friend struct B; };
GCC 4.7.0 20110427 говорит мне error: using typedef-name 'B' after 'struct'
.
Пока это кажется довольно очевидным;В конце концов, мой пример кода пытается объявить и отправить другу struct
с именем B, что на самом деле не struct-key
.
Однако я должен написать friend struct A;
, если A
на самом деле это сложный, многословный беспорядок мета-хакерства шаблонов, это нежелательно.
Я что-то упустил, или мы можем на самом деле не friend
печатать через псевдонимы типов?Если нет, есть ли какая-то конкретная причина или это просто причуды языка?
Этот вопрос поднимал вопрос раньше, но устарел и делает утверждения по этому вопросуотносительно C ++ 0x, которые не кажутся правдой. Этот вопрос вместо этого относится к C ++ 0x FDIS.