MyObject& operator=(MyObject&& rhs) { logger.WriteMessage(L"move assignment op"); value = std::move(rhs.value); }
~MyObject() { logger.WriteMessage(L"dstr"); }
MyObject& operator=(const MyObject& rhs) { logger.WriteMessage(L"assigment op"); value = rhs.value; }
MyObject(MyObject&& rhs) { logger.WriteMessage(L"move cotr"); value = std::move(rhs.value); }
MyObject(const MyObject& rhs) { logger.WriteMessage(L"copy cotr"); value = rhs.value; }
MyObject(std::wstring value) { logger.WriteMessage(L"cotr"); this->value = value; }
MyObject() { logger.WriteMessage(L"cotr"); }