// Qué función especial elige el compilador en cada línea.
#include <iostream>
#include <utility>

#include "traced.h"

Traced make_traced() {
    Traced local("local");
    return local;
}

int main() {
    std::cout << "Traced a(\"a\");\n";
    Traced a("a");
    std::cout << "Traced b = a;\n";
    Traced b = a;
    std::cout << "Traced c = std::move(a);\n";
    Traced c = std::move(a);
    std::cout << "b = c;\n";
    b = c;
    std::cout << "b = std::move(c);\n";
    b = std::move(c);
    std::cout << "Traced d = make_traced();\n";
    Traced d = make_traced();
    std::cout << "fin de main\n";
    return 0;
}
