//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is dual licensed under the MIT and the University of Illinois Open // Source Licenses. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // unique_ptr // test reset #include #include #include "unique_ptr_test_helper.h" int main() { { std::unique_ptr p(new A); assert(A::count == 1); assert(B::count == 0); A* i = p.get(); assert(i != nullptr); p.reset(new B); assert(A::count == 1); assert(B::count == 1); } assert(A::count == 0); assert(B::count == 0); { std::unique_ptr p(new B); assert(A::count == 1); assert(B::count == 1); A* i = p.get(); assert(i != nullptr); p.reset(new B); assert(A::count == 1); assert(B::count == 1); } assert(A::count == 0); assert(B::count == 0); }