Шаблон специализирующей функции на initializer_list не работает?
Я знаю, что специализировать шаблоны функций неправильно
Этот вопрос вне любопытства.
скажи у меня есть шаблон функции
template<typename T>
void foo(T){}
и я специализируюсь на этом
template<>
void foo(std::initializer_list<int>){}
и я называю это как
foo({1, 2, 3});
Я получаю сообщение об ошибке "Нет экземпляра foo, соответствующего brac-заключенному списку инициализатора", указывающего на основной шаблон (перегрузка работает нормально, как и ожидалось)
но если я изменю базовый шаблон функции, чтобы взять initializer_list в качестве параметра, то все в порядке.
что именно происходит?
компилятор: gcc 4.8.2 полезная ссылка