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) ctor
19
// unique_ptr(pointer) ctor should only require default Deleter ctor
25
A(const A&) {++count;}
36
Deleter& operator=(Deleter&);
39
Deleter() : state_(5) {}
41
int state() const {return state_;}
43
void operator()(A* p) {delete p;}
50
assert(A::count == 1);
51
std::unique_ptr<A> s(p);
54
assert(A::count == 0);
57
assert(A::count == 1);
58
std::unique_ptr<A, Deleter> s(p);
60
assert(s.get_deleter().state() == 5);
62
assert(A::count == 0);