¿Por qué mi plantilla no acepta una lista de inicializador?

He creado una plantilla de la siguiente manera

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

Quería que esto se pueda llamar por contenedores, pero también por listas de inicializadores. Pensé que seríainitializer_list<int>, cuando se llama de la siguiente manera.

f({1, 2, 3});

Pero GCC se comporta como si no fuera compatible con los estándares

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)

¿Alguien puede explicar cómo puedo hacer que esto funcione sin advertencias? ¡Gracias!