This question already has an answer here:
Never calls move constructor. Why ? An error occurs when I delete the move constructor. Output:
A constructor
0x7fff8ed60ebf
Hello World!
0x7fff8ed60ebf
~A
#include <iostream>
#include <string>
class A{
public:
A(){std::cerr<<"A constructor"<<std::endl;}
A(A&& o){std::cerr<<"A move constructor"<<std::endl;}
//A(A&& o) = delete;
A(const A &p2){std::cerr<<"A copy constructor"<<std::endl;};
~A(){std::cerr<<"~A"<<std::endl;}
A& operator=(const A& other)=delete;
A& operator=(A&& other)=delete;
};
A foo(){
A temp;
std::cerr<<&temp<<std::endl;
return temp;
}
int main() {
A temp = foo();
std::cerr << "Hello World!\n" << &temp << std::endl;
}
Aucun commentaire:
Enregistrer un commentaire