[/ Copyright 2014 Peter Dimov Distributed under the Boost Software License, Version 1.0. See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt ] [section:addressof addressof] [simplesect Authors] * Brad King * Douglas Gregor * Peter Dimov [endsimplesect] [section Header ] The header `` defines the function template `boost::addressof`. `boost::addressof(x)` returns the address of `x`. Ordinarily, this address can be obtained by `&x`, but the unary `&` operator can be overloaded. `boost::addressof` avoids calling used-defined `operator&()`. `boost::addressof` was originally contributed by Brad King based on ideas from discussion with Doug Gregor. [section Synopsis] `` namespace boost { template T* addressof( T& x ); } `` [endsect] [section Example] `` #include struct useless_type { }; class nonaddressable { useless_type operator&() const; }; void f() { nonaddressable x; nonaddressable* xp = boost::addressof(x); // nonaddressable* xpe = &x; /* error */ } `` [endsect] [endsect] [endsect]