Все ваши переменные являются lvalues и, следовательно, не могут быть перемещены неявно, так как вам может потребоваться доступ к ним позже. Кроме того, конструкторы копирования и операторы присваивания принимают константные ссылки.
Ссылки на Rvalue работают, ну, на rvalues, то есть на временных объектах. Чтобы увидеть используемый конструктор перемещения, сначала вам нужно будет создать временный объект. Кроме того, не забывайте, что RVO по-прежнему применяется и вполне может использовать любой или все ваши вызовы std :: cout.
Вы можете создать rvalue из lvalue, используя std :: move (lvalue).