He creado una plantilla de la siguiente manera¿Por qué no aceptar una plantilla de lista de inicialización
template<typename T>
void f(T const& t) { }
que quería para que esto sea exigible por contenedores, sino también por las listas de inicializador. Pensé que sería initializer_list<int>
, cuando se llama de la siguiente manera.
f({1, 2, 3});
Pero GCC se comporta como si no los estándares de compliant
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)
¿Puede alguien explicar cómo puedo hacer este trabajo sin advertencias? ¡Gracias!
Hmm parece desafortunado que SO piense que la etiqueta 'initializer_list' también está en' initializer-list' -.- C++ 0x ¡soltará lágrimas! –
AFAICS, no está definido como un sinónimo en http://stackoverflow.com/tags/initializer-list/synonyms. ¿Hay alguna lógica incorporada que reemplace 'x_y' por' x-y'? – sbi
Oh, no importa, acabo de ver http://meta.stackexchange.com/questions/75798/unfortunate-auto-detection-of-synonyms-for-initializer-list – sbi