default01.pass.cpp revision c52f43e72dfcea03037729649da84c23b3beb04a
1//===----------------------------------------------------------------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10// <memory> 11 12// unique_ptr 13 14// Test unique_ptr default ctor 15 16#include <memory> 17#include <cassert> 18 19// default unique_ptr ctor should only require default Deleter ctor 20class Deleter 21{ 22 int state_; 23 24 Deleter(Deleter&); 25 Deleter& operator=(Deleter&); 26 27public: 28 Deleter() : state_(5) {} 29 30 int state() const {return state_;} 31 32 void operator()(void*) {} 33}; 34 35int main() 36{ 37 { 38 std::unique_ptr<int> p; 39 assert(p.get() == 0); 40 } 41 { 42 std::unique_ptr<int, Deleter> p; 43 assert(p.get() == 0); 44 assert(p.get_deleter().state() == 5); 45 } 46} 47