//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// <memory>
// allocator:
// pointer address(reference x) const;
// const_pointer address(const_reference x) const;
#include<memory>#include<cassert>template<classT>voidtest_address(){T*tp=newT();constT*ctp=tp;conststd::allocator<T>a;assert(a.address(*tp)==tp);assert(a.address(*ctp)==tp);deletetp;}structA{voidoperator&()const{}};intmain(){test_address<int>();test_address<A>();}