Использовать заключенные в скобки -списки инициализаторов в вариативном шаблоне?

Я пытаюсь использовать заключенные в скобки -списки инициализаторов в функции шаблона с переменным числом аргументов, но компилятор жалуется... я слишком много прошу или я сделал что-то не так?

Лучше всего это демонстрируется на примере:

struct Bracy
{
    Bracy(int i, int j)
    {
    }
};

struct Test
{

    void consumeOne(int i)
    {
    }

    void consumeOne(const Bracy & bracy)
    {
    }

    void consume()
    {
    }

    template<typename T, typename...Values>
    void consume(const T & first, Values... rest)
    {
        consumeOne(first);
        consume(rest...);
    }

    template<typename...Values>
    Test(Values... values)
    {
        consume(values...);
    }
};

void testVariadics()
{
    Test(7,{1,2}); //I'd like {1,2} to be passed to consumeOne(const Bracy & bracy)
}

GCC (4.7 )говорит:

main.cpp:45:14: error: no matching function for call to ‘Test::Test(int, <brace-enclosed initializer list>)’
6
задан Yakk - Adam Nevraumont 19 February 2013 в 20:22
поделиться