nur mal eine eher kurze und recht simple Frage. Es geht um das verwenden von std::move.
Ich habe mal den relevanten Code auf ein minimum reduziert.
ich habe folgenden Code:
Code: Alles auswählen
for(const auto& object : mMyVector)
{
if(someExpresssion)
mCollectorClass.addObject(object);
}
Code: Alles auswählen
CollectorClass::addObject(const std::shared_ptr<Object>& anObject)
{
myObjectVector.push_back(anObject);
}
Code: Alles auswählen
CollectorClass::addObject(const std::shared_ptr<Object>&& anObject)
{
myObjectVector.push_back(anObject);
}
Ich habe das nämlich probiert, der vector mMyVector ist danach aber unverändert.
Mir scheint es auch so, als ob das push_back von std::vector keine überladung vom &&-Parameter hat.
Geht das also gar nicht was ich vorhabe?
Und wie müsste ich das denn realizieren?
Wie gesagt, sehr simple frage; modern C++ und so...^^