Move

最終更新日04 Jul 2017 00:10

実験

#include <iostream>
#include <utility>
#include <vector>
#include <string>
using namespace std;
class A {
public:
    const std::string s;
    A(const string& str) : s(str) { }
    A() : s("test") { }
    A(const A& o) : s(o.s) { std::cout << "move failed!\n"; }
    A(A&& o) noexcept : s(std::move(o.s)) { cout << "ムーブコンストラクタ" << endl; }
    A& operator=(A&& other) {
        cout << "move 代入子" << endl;
        return *this;
    }
};
int main()
{
    A a("aaaa");
    A b("bbbb");
    cout << "a=" << a.s << endl;
    b = std::move(a);
    cout << "a=" << a.s << endl;
    cout << "b.a=" << b.s << endl;
 
}


ファイル

サポートサイト Wikidot.com