明确专门的成员类的成员类的外部定义

时间:2015-08-23 02:29:43

标签: c++

这个例子来自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;
}

1 个答案:

答案 0 :(得分:0)

我认为这是一个错误,我已经报道了。 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67402