Используя std :: перемещение с конструктором (тип t) или конструктора (type && t). В чем разница?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Используя std :: перемещение с конструктором (тип t) или конструктора (type && t). В чем разница?

Сообщение Anonymous »

Я изучаю STD :: MOVE Семантика, и я хотел бы, чтобы это было уточнено мне:
Скажите, что я имею:

Код: Выделить всё

// 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»