2015-08-23 2 views
2

этот пример из N4527 14.7.3 [temp.expl.spec]/5, немного изменился.Внешнее определение класса-члена явно специализированного класса-члена

template<class T> 
struct A { 
    struct B{}; 
}; 

template<> struct A<char>::B{ 
    void f(); 
    struct C; 
    struct D{}; // ok 
}; 

void A<char>::B::f(){}// ok in gcc5.1.0 and clang3.6.0 

struct A<char>::B::C{};// error in gcc5.1.0, ok in clang3.6.0 

int main() 
{ 
    return 0; 
} 
+0

@ 0x499602D2 вы можете здесь проверить http://melpon.org/wandbox/permlink/asPxd3DvdXS5ujG9 – stackcpp

+0

Хорошо. Похоже на ошибку. – 0x499602D2

ответ

Смежные вопросы