Мы нашли что-то похожее на следующее (не спрашивайте ...):Глобальная квалификация в объявлении класса класса головки
namespace N {
struct A { struct B; };
}
struct A { struct B; };
using namespace N;
struct ::A::B {}; // <- point of interest
Интересно, что это нормально компилируется с VS2005, ICC 11.1 и Комео (он-лайн), но не может с GCC:
глобальная квалификация имени класса является недействительным, прежде чем '{' лексема
от C++ 03, Приложение а, мне кажется, как GCC является правильным:
class-head
может состоять изnested-name-specifier
иidentifier
nested-name-specifier
не может начинаться с глобальной квалификации (::
)- очевидно, то не может
identifier
... или я с видом что нибудь?
Звучит как пара для курса с VS2005. – wheaties