Скажите, что я имею:
Код: Выделить всё
// Message.h
class Message
{
private:
std::array buffer;
std::queue packets;
public:
Message(Packet p)
{
packets.push(std::move(p));
}
}
< /code>
Теперь у меня есть: < /p>
Packet p;
p
Но я не вижу разницы. Первый предотвращает копию (даже с этим конструктором), а секунд разрешает копию? Или нет?Message(Packet&& c)
Я прав, что в этом случае не будет сделано никаких копий, и я в основном заставляю программиста использовать std :: move (a) в противном случае программа не будет компилировать?>
Подробнее здесь: https://stackoverflow.com/questions/796 ... ats-the-di