最終更新日時: 2024年06月11日 22時45分38秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<memory>

# std::pointer_traits::pointer_to(C++11)

    static pointer pointer_traits::pointer_to(element_type& r);           // (1) C++11
    static constexpr pointer pointer_traits::pointer_to(element_type& r); // (1) C++20

    static pointer pointer_traits<T*>::pointer_to(element_type& r) noexcept;           // (2) C++11
    static constexpr pointer pointer_traits<T*>::pointer_to(element_type& r) noexcept; // (2) C++20

## 概要

変数へのポインタを取得する。

## 戻り値

- (1) : 型`Ptr`が静的メンバ関数`pointer_to()`を持っていれば`Ptr::pointer_to(r)`を呼び出してその戻り値を返す。持っていなければ、この関数のインスタンス化は不適格となる。
- (2) : `addressof(r)`を返す。

## 例

    #include <memory>
    #include <iostream>

    int main()
    {
      int value = 3;
      int* p = std::pointer_traits<int*>::pointer_to(value);

      std::cout << *p << std::endl;
    }

### 出力

    3

## バージョン

### 言語

- C++11

### 処理系

- Clang: 3.0 ✅
- GCC: 4.7.3 ✅
- ICC: ??
- Visual C++: 2012 ✅, 2013 ✅

## 参照

- P1006R1 Constexpr in `std::pointer_traits`