Estoy tratando de inicializar un std::vector<std::unique_ptr<std::string>>
de una manera que es equivalente a un ejemplo de Bjarne Stroustrup's C++11 FAQ:Inicialización contenedor de unique_ptrs de lista de inicialización falla con GCC 4.7
using namespace std;
vector<unique_ptr<string>> vs { new string{"Doug"}, new string{"Adams"} }; // fails
unique_ptr<string> ps { new string{"42"} }; // OK
no puedo ver ninguna razón por la cual esta sintaxis fallara . ¿Hay algún problema con esta forma de inicializar el contenedor?
El mensaje de error del compilador es enorme; el segmento relevante que encuentro es el siguiente:
/usr/lib/gcc-snapshot/lib/gcc/i686-linux-gnu/4.7.0/../../../../include/c++/4.7.0 /bits/stl_construct.h:77:7: error: no matching function for call to
'std::unique_ptr<std::basic_string<char> >::unique_ptr(std::basic_string<char>&)'
¿Cuál es la manera de solucionar este error?
Está recogiendo el iterador de entrada ctor – PlasmaHH
Muy similar a http://stackoverflow.com/a/9504162/841108 –
@PlasmaHH En mi código real tenía muchas entradas en la lista de inicializadores, así que no creo este es el problema. – juanchopanza