I\'m confused about when a move constructor gets called vs a copy constructor. I\'ve read the following sources:
Move constructor is not getting called in C++0x
Remember that copy elision could occur. If you disable it by passing the -fno-elide-constructors flag to the compiler your constructor might get executed.
-fno-elide-constructors
You can read about it here: https://www.geeksforgeeks.org/copy-elision-in-c/