Por que meu modelo não aceita uma lista de inicializadores

Eu criei um modelo da seguinte maneira

template<typename T>
void f(T const& t) { }

Eu queria que isso pudesse ser chamado por contêineres, mas também por listas de inicializadores. Eu pensei que seriainitializer_list<int>, quando chamado da seguinte maneira.

f({1, 2, 3});

Mas o GCC se comporta como se não fosse compatível com os padrões

m.cpp: In function 'int main()':
m.cpp:6:25: warning: deducing 'const T' as 'const std::initializer_list<int>'
m.cpp:4:6: warning:   in call to 'void f(const T&) [with T = std::initializer_list<int>]'
m.cpp:6:25: warning:   (you can disable this with -fno-deduce-init-list)

Alguém pode explicar como eu posso fazer isso funcionar sem avisos? Obrigado!

questionAnswers(3)

yourAnswerToTheQuestion