When i run it, however, it only prints "constr" and nothing else.
Can anyone explain this behavior to me? because to my understanding the std::move function should (through some magic i dont understand yet) convert the lvalue to an rvalue thus invoking the move constructor when being passed to test(), but it doesn't :(