#include <iostream>

class Trace {
    int id_;

public:
    explicit Trace(int id) : id_{id} {
        std::cout << "build " << id_ << '\n';
    }

    ~Trace() {
        std::cout << "destroy " << id_ << '\n';
    }
};

class Wrapper {
    Trace first_;
    Trace second_;

public:
    Wrapper() : first_{1}, second_{2} {
        std::cout << "wrapper body" << '\n';
    }

    ~Wrapper() {
        std::cout << "wrapper end" << '\n';
    }

    void report() {
        std::cout << "use" << '\n';
    }
};

int main() {
    Wrapper wrapper;
    wrapper.report();
    return 0;
}
