Ich habe einen Vektor wie folgt aus:C++ keine passende Funktion für Aufruf Vektor push_back
std::vector<std::unique_ptr<Service> > m_vec;
Ich kann wie folgt ausführen push_back:
m_vec.push_back(std::make_unique<Service>());
Aber wenn ich es wie folgt aus:
std::unique_ptr<Service> pt = std::make_unique<Service>();
m_vec.push_back(pt);
ich habe Fehler no matching function for call to ‘std::vector<std::unique_ptr<Service> >::push_back(std::unique_ptr<Service>&)
Bedeutet &
, dass ich einen Verweis auf den Vektor dränge? Wenn ja, warum kann ich keine Referenz drücken?
Ihr zweites Beispiel versucht, eine * Kopie * von 'pt' zu machen, die nicht geht Arbeit als 'unique_ptr's Kopierkonstruktor wird gelöscht. – user657267
Ein weiteres Duplikat: [Was ist die korrekte Verwendung von std :: unique_ptr während des Push-Vorgangs in std :: vector] (http://stackoverflow.com/q/14484183/514235). – iammilind