//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// <memory>
// template <ObjectType T> T* addressof(T& r);
#include<memory>#include<cassert>structA{voidoperator&()const{}};intmain(){inti;doubled;assert(std::addressof(i)==&i);assert(std::addressof(d)==&d);A*tp=newA;constA*ctp=tp;assert(std::addressof(*tp)==tp);assert(std::addressof(*ctp)==tp);deletetp;}