[Bug c++/50830] New: [c++0x] Variadic template, inner class error

trashyankes at wp dot pl gcc-bugzilla@gcc.gnu.org
Sat Oct 22 14:46:00 GMT 2011


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50830

             Bug #: 50830
           Summary: [c++0x] Variadic template, inner class error
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: trashyankes@wp.pl
             Build: MinGW 4.6.0 20110210; MinGW 4.7.0 20110815


this code generate error `expected a class template, got 'template<class>
struct aa'` (case `a4` and `a5`)
when i remove every `...` its compile without problems

-----------------------------------------------------
template<class...>
struct list_type {};
template<template<class> class...>
struct list_templates {};

template<class>
struct aa {};
template<class>
struct bb {};

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

template<template<class> class... F>
struct test<list_templates<F...>>
{
    struct inner {};
};
template<template<class> class... F, template<class> class... F2>
struct test<list_templates<F...>, list_templates<F2...>>
{
    struct inner {};
};

template<class... T>
struct test<list_type<T...>>
{
    struct inner {};
};
template<class... T,class... T2>
struct test<list_type<T...>, list_type<T2...>>
{
    struct inner {};
};

template<template<class> class... F, class... T>
struct test<list_templates<F...>, list_type<T...>>
{
    struct inner {};
};
test<list_templates<aa>> a1;
test<list_type<int>> a2;
test<list_type<int>, list_type<int>> a3;
test<list_templates<aa>, list_type<int>> a4; // error
test<list_templates<aa>, list_templates<bb>> a5; // error
-----------------------------------------------------



More information about the Gcc-bugs mailing list