Предположим, что у меня есть следующий код в С++:
#include <memory>
#include <iostream>
struct Some {
Some(int _a) : a(_a) {}
int a;
};
int main() {
Some some(5);
std::unique_ptr<Some> p1 = std::make_unique<Some>(some);
std::unique_ptr<Some> p2 = std::make_unique<Some>(some);
std::cout << p1->a << " " << p2->a << std::endl;
return 0;
}
Как я понимаю, уникальные указатели используются, чтобы гарантировать, что ресурсы не используются. Но в этом случае оба p1
и p2
указывают на один и тот же экземпляр some
.
Пожалуйста, сообщите об этом.