当模板模板参数的模板参数是可变模板参数包时,GCC会失败,而Clang会成功。

6
template<class ... T>
struct S{
    template<int>
    struct A{};

    template<T...>
    struct B{};

    template<template<T...> class>
    struct C{};
};

S<int>::C<S<int>::B> s1;
S<int>::C<S<int>::A> s2;//gcc5.1.0 fails, clang3.6.0 succeeds

int main(){}

您可以在这里测试 http://melpon.org/wandbox/permlink/hhy70gO9LMjLq9nU

哪一个是正确的,gcc还是clang?


1
这是GCC的一个bug。你可以在这里提交报告。 - David G
1个回答

0

这个问题已经在gcc 6.0中得到解决。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接