Этот код не компилируется: «неоднозначный вызов перегруженной функции». Пробовал с 3 разными компиляторами.

готовил простой шаблонный тест в Code :: Blocks, но получаю сообщение об ошибке:

Нет подходящей функции для вызова функции «OutputSizes ()»

Вот мой исходный код:

#include <iostream>
#include <typeinfo>

using namespace std;

template <typename FirstDatatype, typename... DatatypeList>
void OutputSizes()
{
    std::cout << typeid(FirstDatatype).name() << ": " << sizeof(FirstDatatype) << std::endl;
    OutputSizes<DatatypeList...>();
}

int main()
{
    OutputSizes<char, int, long int>();
    return 0;
}

Я использую GNU GCC с-std=C++0x, С помощью-std=gnu++0x не имеет значения.

Ответы на вопрос(2)

Ваш ответ на вопрос