Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <memory>
- #include <vector>
- struct A {
- A(std::unique_ptr<int> a) : a(std::move(a)) {}
- bool gone() {
- return a == nullptr;
- }
- std::unique_ptr<int> a;
- };
- std::vector<A> vec;
- void foo(A&& a, bool queue) {
- if (queue) {
- vec.push_back(std::move(a));
- }
- }
- int main()
- {
- A a(std::make_unique<int>(1337));
- foo(std::move(a), false);
- std::printf("Lost ownership: %un", a.gone());
- if (a.a != nullptr) {
- std::printf("A.a: %dn", *a.a);
- }
- foo(std::move(a), true);
- std::printf("Lost ownership: %un", a.gone());
- if (a.a != nullptr) {
- std::printf("A.a: %dn", *a.a);
- }
- }
Add Comment
Please, Sign In to add comment