// { dg-do compile { target c++11 } }

template<typename Fun, typename... Args> // { dg-error "template parameter" }
struct call;

template<typename Fun, typename Arg0>
struct call // { dg-message "note: redeclared here" }
{
    template<typename Sig>
    struct result;

    template<typename X, typename Y>
    struct result<X(Y)>
    {
        typedef X type;
    };
};


template<typename Fun, int... N> // { dg-error "template parameter" }
struct call2;

template<typename Fun, int N>
struct call2 // { dg-message "note: redeclared here" }
{
    template<typename Sig>
    struct result;

    template<typename X, typename Y>
    struct result<X(Y)>
    {
        typedef X type;
    };
};

template<typename Fun, template<typename> class... TT> // { dg-error "template parameter" }
struct call3;

template<typename Fun, template<typename> class TT>
struct call3 // { dg-message "note: redeclared here" }
{
    template<typename Sig>
    struct result;

    template<typename X, typename Y>
    struct result<X(Y)>
    {
        typedef X type;
    };
};
