- memory[meta header]
- std[meta namespace]
- allocator[meta class]
- function[meta id-type]
- cpp17deprecated[meta cpp]
- cpp20removed[meta cpp]
pointer address(reference x) const; // (1) C++03
pointer address(reference x) const noexcept; // (1) C++11
const_pointer address(const_reference x) const; // (2) C++03
const_pointer address(const_reference x) const noexcept; // (2) C++11
この関数は、C++17から非推奨となり、C++20で削除された。オブジェクトから直接アドレスを取得すること。
変数のアドレスを取得する。
- C++03 :
&x
- C++11 :
operator&
がオーバーロードされていたとしても、x
が参照するオブジェクトのアドレスを返す。
オブジェクトからのアドレス取得は、アロケータの実装に依存せず、オブジェクトx
に対して式&x
もしくはstd::addressof
(x)
の方法を使用すればよかった。
この関数は必要なかったため、非推奨となった。
#include <iostream>
#include <memory>
int main()
{
std::allocator<int> alloc;
int x = 3;
// 変数xのアドレスを取得する
int* p = alloc.address(x);
std::cout << std::hex << p << std::endl;
std::cout << std::dec << x << std::endl;
}
- address[color ff0000]
- std::hex[link /reference/ios/hex.md]
- std::dec[link /reference/ios/dec.md]
0x7fff54064a7c
3