- PVSM.RU - https://www.pvsm.ru -

Пополняем шпаргалки по C++: неявно-генерируемые перемещающий конструктор и оператор присваивания

Когда не так часто, как хотелось бы, приходится работать с языком, некоторые аспекты забываются. А некоторые никогда и не откладываются в голове. Поэтому, когда возникают вопросы, приходится отвлекаться и лезть в документацию.

Чтобы сэкономить время в последующем, а также, чтобы лучше понять в ходе обучения, крайне помогает вести конспекты и делать наглядные шпаргалки. Шпаргалку можно повесить рядом на стену. Хороши шпаргалки в виде блок-схем, по которым можно легко, по шагам, получить нужный результат (например выбрать правильный контейнер [1]).

Под катом я решил опубликовать пару шпаргалок для определения условия когда будет создан компилятором неявно-генерируемый перемещающий конструктор и перемещающий оператор присваивания.

Шпаргалки представлены в виде PDF файлов для печати на принтере A4, в виде картинки PNG, а также исходников в SVG.

Неявно-генерируемый перемещающий конструктор

Пополняем шпаргалки по C++: неявно генерируемые перемещающий конструктор и оператор присваивания [2]

Неявно-генерируемый перемещающий оператор присваивания

Пополняем шпаргалки по C++: неявно генерируемые перемещающий конструктор и оператор присваивания [3]

Исходники и PDF формата A4: yadi.sk/d/s7t7uEdKAxHKq/Cheatsheets/My/C%2B%2B-move-ctor/ [4]

TriviallyCopyable концепт

TriviallyCopyable концепт

На диаграммах есть отсылки к тривиальности конструкторов и т.п. Используя en.cppreference.com/w/cpp/concept/TriviallyCopyable [5] составил карту памяти:
Пополняем шпаргалки по C++: неявно генерируемые перемещающий конструктор и оператор присваивания

Исходники и PDF: yadi.sk/d/s7t7uEdKAxHKq/Cheatsheets/My/C%2B%2B-move-ctor/Concepts/ [6]

Вот и всё, жду замечаний. Если кому-то пригодится, не забывайте выражать свои эмоции в комментариях.

Используемые материалы:
en.cppreference.com/w/cpp/language/move_operator [7]
en.cppreference.com/w/cpp/language/move_constructor [8]
en.cppreference.com/w/cpp/language/copy_constructor [9]
en.cppreference.com/w/cpp/language/as_operator [10]
en.cppreference.com/w/cpp/language/destructor [11]
en.cppreference.com/w/cpp/concept/TriviallyCopyable [5]

PS где принято хранить файлы (не картинки) для хабра?

Автор: monah_tuk

Источник [12]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/c-3/67120

Ссылки в тексте:

[1] выбрать правильный контейнер: http://habrahabr.ru/company/infopulse/blog/194726/

[2] Image: http://habrastorage.org/files/87a/d8c/86a/87ad8c86a2c74149b06ce5cd29569bd7.png

[3] Image: http://habrastorage.org/files/0e7/136/537/0e7136537b8e4b949e7eaaef7bc8d182.png

[4] yadi.sk/d/s7t7uEdKAxHKq/Cheatsheets/My/C%2B%2B-move-ctor/: https://yadi.sk/d/s7t7uEdKAxHKq/Cheatsheets/My/C%2B%2B-move-ctor/

[5] en.cppreference.com/w/cpp/concept/TriviallyCopyable: http://en.cppreference.com/w/cpp/concept/TriviallyCopyable

[6] yadi.sk/d/s7t7uEdKAxHKq/Cheatsheets/My/C%2B%2B-move-ctor/Concepts/: https://yadi.sk/d/s7t7uEdKAxHKq/Cheatsheets/My/C%2B%2B-move-ctor/Concepts/

[7] en.cppreference.com/w/cpp/language/move_operator: http://en.cppreference.com/w/cpp/language/move_operator

[8] en.cppreference.com/w/cpp/language/move_constructor: http://en.cppreference.com/w/cpp/language/move_constructor

[9] en.cppreference.com/w/cpp/language/copy_constructor: http://en.cppreference.com/w/cpp/language/copy_constructor

[10] en.cppreference.com/w/cpp/language/as_operator: http://en.cppreference.com/w/cpp/language/as_operator

[11] en.cppreference.com/w/cpp/language/destructor: http://en.cppreference.com/w/cpp/language/destructor

[12] Источник: http://habrahabr.ru/post/232775/