std::allocator<T>::address

From cppreference.com
< cpp‎ | memory‎ | allocator
Memory management library
(exposition only*)
Uninitialized memory algorithms
(C++17)
(C++17)
(C++17)
(C++20)
Constrained uninitialized
memory algorithms
(C++20)
C Library

Allocators
(C++11)
(C++11)
Memory resources
Garbage collection support
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
Uninitialized storage
(until C++20*)
(until C++20*)
(until C++20*)
Explicit lifetime management
std::allocator
Member functions
allocator::address
(until C++20)
(until C++20)
(until C++20)
(until C++20)
Non-member functions
(until C++20)
(1)
pointer address( reference x ) const;
(until C++11)
pointer address( reference x ) const noexcept;
(since C++11)
(deprecated in C++17)
(removed in C++20)
(2)
const_pointer address( const_reference x ) const;
(until C++11)
const_pointer address( const_reference x ) const noexcept;
(since C++11)
(deprecated in C++17)
(removed in C++20)

Returns the actual address of x even in presence of overloaded operator&.

Parameters

x - the object to acquire address of

Return value

The actual address of x.

Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

DR Applied to Behavior as published Correct behavior
LWG 634
(N2436)
C++98 the return value is &x
(which is affected by overloaded operator&
returns the actual address of x