#include<iostream>#include<sstream>#include<cassert>#include<array>#include<limits>#include<set>#include<unordered_map>#include<functional>#include<memory>#include<ostream>#include<string>#include<vector>#include<map>#include<optional>#include<chrono>#include<mutex>#include<thread>#include<utility>#include<typeinfo>#include<queue>usingnamespace std;classData{public:// Default constructor// Data() = delete ;// {// cout << "I am born: " << data << endl;// };// Other constructorsData(int value):data(value){
cout <<"I am born:"<< data << endl;}// Delete move constructor and move assignment operator (C++11 and later)// Data(Data &&) = delete;Data(Data &&d):data(d.data){
cout <<"I am born:"<< data << endl;}~Data(){
cout <<"I am die:"<< data << endl;}voidprintData(){
std::cout <<"Data: "<< data << std::endl;}intgetData(){return data;}private:int data =0;};intmain(){
Data a{1};
Data b = std::move(a);
cout <<"ok"<< endl;return0;}