//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// <memory>
// unique_ptr
// unique_ptr(nullptr_t);
#include<memory>#include<cassert>// default unique_ptr ctor should only require default Deleter ctor
classDeleter{intstate_;Deleter(Deleter&);Deleter&operator=(Deleter&);public:Deleter():state_(5){}intstate()const{returnstate_;}voidoperator()(void*){}};intmain(){{std::unique_ptr<int>p(nullptr);assert(p.get()==0);}{std::unique_ptr<int,Deleter>p(nullptr);assert(p.get()==0);assert(p.get_deleter().state()==5);}}