Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001

Move semantics в C++11

11.11.2014, 15:03. Показов 1495. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1. как вообще читать && ? ссылка на ссылку? как это работает?
2. в одном контейнере могут быть и copy и move конструкторы? а как тогда компилятор поймет какой вызывать?
3. и вообще move конструктор вызывается также как и копирующий? никаких там ухищрений типа * или & нет?

в остальном все хорошо тут описано
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.11.2014, 15:03
Ответы с готовыми решениями:

Move semantics implementation..
Здравствуйте, форумчане.. При выполнении лабораторной застопорился на одном задании.. Вообще суть лабораторной: шаблоны классов +...

How can I resize a picture when I move a move a mouse on it, and size it back when I move mouse out?
How can I resize a picture when I move a move a mouse on it, and size it back when I move mouse out. I know, I should use OnMouseMove...

Move C++
Здравствуйте. Я только начинаю разбираться с move-семантикой в C++. Возник вопрос. Различаются ли быстродействием. ...

6
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
11.11.2014, 16:25
я только с этим начал разбираться, могу ошибаться.
1. ссылка на временный объект. в конструктор передается уже сконструированный объект(память выделена, значения полей присвоены), который будет уничтожен. в конструкторе перемещения вам предоставляется выбор какие части вы можете использовать повторно а какие необходимо инициализировать повторно
Например, зачем по честному копировать 100500 мегабайт(которые будут освобождены после выхода из области видимости), когда можно скопировать только указатель.
2. передается переменная - copy, результат функции возвращающей временный объект - move
3. в общем случае компилятор сам решает какой конструктор вызывать. для работы с этим временным объектом * и & не требуются, все также как с простой ссылкой
1
Эксперт по математике/физикеЭксперт С++
 Аватар для Ilot
2222 / 1424 / 419
Регистрация: 16.05.2013
Сообщений: 3,642
Записей в блоге: 6
11.11.2014, 16:31
1. && передача в функцию rvalue.
2. Обычные ссылки константные. Попытаетесь передать временный объект по не константной ссылке получите фигу. Семантика перемещения изменяет передаваемый объект.
3. Зависит от типа передаваемого объекта. Если его тип rvaue reference вызывается функция с семантикой перемещения иначе функция с передачей по ссылке.
Более подробно о rvalue reference http://rsdn.ru/article/cpp/Cpp11NewStd.xml
1
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
11.11.2014, 16:55  [ТС]
Цитата Сообщение от Cra3y Посмотреть сообщение
1. ссылка на временный объект. в конструктор передается уже сконструированный объект(память выделена, значения полей присвоены)
как бы точно также передается сконструированный объект и в конструкторе копирования... вообще как бы ссылки как известно не могут быть NULL...
Цитата Сообщение от Cra3y Посмотреть сообщение
2. передается переменная - copy, результат функции возвращающей временный объект - move
хмм... не сразу понял это предложение, но кажется похоже на правду... пожалуй самое толковое объяснение... правда хз как компилятор их отличает...
Цитата Сообщение от Cra3y Посмотреть сообщение
3. в общем случае компилятор сам решает какой конструктор вызывать. для работы с этим временным объектом * и & не требуются, все также как с простой ссылкой
ясно
Цитата Сообщение от Ilot Посмотреть сообщение
1. && передача в функцию rvalue.
шта?
Цитата Сообщение от Ilot Посмотреть сообщение
2. Обычные ссылки константные. Попытаетесь передать временный объект по не константной ссылке получите фигу. Семантика перемещения изменяет передаваемый объект.
ааа так вот оно что... в купе с ответом Cra3y все встает на свои места
Цитата Сообщение от Ilot Посмотреть сообщение
3. Зависит от типа передаваемого объекта. Если его тип rvaue reference вызывается функция с семантикой перемещения иначе функция с передачей по ссылке.
да что еще за rvalue?
0
Эксперт по математике/физикеЭксперт С++
 Аватар для Ilot
2222 / 1424 / 419
Регистрация: 16.05.2013
Сообщений: 3,642
Записей в блоге: 6
11.11.2014, 16:58
Цитата Сообщение от Dark Byte Посмотреть сообщение
шта?
Не шта, а переходим по ссылке и читаем. Лучшего разъяснения чем на rsnd'е я не встречал. Когда прочитаете возвращайтесь - обсудим.
0
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
11.11.2014, 17:03  [ТС]
Цитата Сообщение от Ilot Посмотреть сообщение
Не шта, а переходим по ссылке и читаем. Лучшего разъяснения чем на rsnd'е я не встречал. Когда прочитаете возвращайтесь - обсудим.
ушел читать спс
0
11.11.2014, 17:13

Не по теме:

Цитата Сообщение от Dark Byte Посмотреть сообщение
вообще как бы ссылки как известно не могут быть NULL...
ну конечно не могут хД

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.11.2014, 17:13
Помогаю со студенческими работами здесь

Move в SQL
кто может предолжит ОДНУ сложную SQL команду для выполнения следующих действий... взятие из т1 по условию блок записей и ПЕРЕМЕЩЕНИЯ их в...

Click to move
Этот скрипт должен передвигать объект по клацу мышки, но ругается на команду NavMeshAgent ,по идее этот код полностью рабочий, помогите как...

Std::move
Добрый вечер, #include <iostream> using namespace std; class A { private: int x = 10; public: A(int q){ x = q; }

C# и Move семантика
Вопрос в следующем. Существует ли в C# нечто подобное move semantics C++ 11?

Команда move
Есть процедура, которая переименовывает файлы, добавляя к имени файла - имя папки. Как изменить команду move, чтобы файлы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru