Initialize a Inside get_test() 0(effective: 0): Int constructor with value 5 Pass by copy 1(effective: 1): Copy constructor with id 0 Took by copy 1(effective: 1): Destructor Pass by ref Took by ref Pass by move Took by rval Initializing b 2(effective: 2): Int constructor with value 7 Move to c 2(effective: 3): Move constructor with id 2 Ref to d Copy by ref to e 4(effective: 4): Copy constructor with id 2 Copy by rval to f 4(effective: 5): Move constructor with id 4 Getting by move Inside get_move() 6(effective: 6): Int constructor with value 7 6(effective: 6): Destructor 6(effective: 7): Move constructor with id 6 6(effective: 7): Destructor 4(effective: 5): Destructor 4(effective: 4): Destructor 4(effective: 4): After move 2(effective: 3): Destructor 2(effective: 2): Destructor 2(effective: 2): After move 0(effective: 0): Destructor