1 //===----------------------------------------------------------------------===//
3 // The LLVM Compiler Infrastructure
5 // This file is dual licensed under the MIT and the University of Illinois Open
6 // Source Licenses. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
14 // Test unique_ptr(pointer, deleter) ctor
16 // unique_ptr(pointer, deleter()) only requires MoveConstructible deleter
21 #include "../../deleter.h"
27 A(const A&) {++count;}
37 assert(A::count == 3);
38 std::unique_ptr<A[], Deleter<A[]> > s(p, Deleter<A[]>());
40 assert(s.get_deleter().state() == 0);
42 assert(A::count == 0);
44 { // LWG#2520 says that nullptr is a valid input as well as null
45 #ifdef _LIBCPP_VERSION
46 std::unique_ptr<A[], Deleter<A[]> > s1(NULL, Deleter<A[]>());
48 std::unique_ptr<A[], Deleter<A[]> > s2(nullptr, Deleter<A[]>());
50 assert(A::count == 0);