defining and calling createIntArray()
does not compile because we deleted the copy constructor
explain that the copy constructor would have to deep-copy
returning a large object by value is a very nice and clean pradigm (think Java), but old C++ avoided it due to the cost of copying
move constructor
motivation: make returning local objects efficient
if you are copying from an object that will be destroyed, just steal the internals instead of copying from it
code: copy the interal pointer to the new object, and then sever the connection from the old object
enabling copy elision eliminates the move constructor calls
rvalue reference
ravlue examples: 5, MyString{"abc"}
rvalue-test.cpp: regular ref vs. const ref vs. rvalue ref
why does move constructor need rvalue reference?
move assignment
*thisstd::move()Essential 6, Rule of Five, and Rule of Zero