Hatred's Log Place

DON'T PANIC!

Aug 29, 2014 - 1 minute read - programming c++

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

Статью изначально публиковал на хабре: http://habrahabr.ru/post/232775/. Здесь - для единства мыслей :)

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

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

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

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

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

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

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

TriviallyCopyable концепт

На диаграммах есть отсылки к тривиальности конструкторов и т.п. Используя http://en.cppreference.com/w/cpp/concept/TriviallyCopyable составил карту памяти:

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

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

Используемые материалы:

  1. http://en.cppreference.com/w/cpp/language/move_operator
  2. http://en.cppreference.com/w/cpp/language/move_constructor
  3. http://en.cppreference.com/w/cpp/language/copy_constructor
  4. http://en.cppreference.com/w/cpp/language/as_operator
  5. http://en.cppreference.com/w/cpp/language/destructor
  6. http://en.cppreference.com/w/cpp/concept/TriviallyCopyable
  7. http://accu.org/content/conf2014/Howard_Hinnant_Accu_2014.pdf - очень хорошая презенташка по Move Semantics

Tags: c++ c++11 cheat sheet move semantic programming

hex ↔ bin в уме MinGW и локали

comments powered by Disqus