Skip to content

Latest commit

 

History

History
81 lines (61 loc) · 1.95 KB

File metadata and controls

81 lines (61 loc) · 1.95 KB

ref

  • functional[meta header]
  • std[meta namespace]
  • function template[meta id-type]
  • cpp11[meta cpp]
namespace std {
  template <class T>
  reference_wrapper<T> ref(T& t) noexcept;                   // (1) C++11

  template <class T>
  constexpr reference_wrapper<T> ref(T& t) noexcept;         // (1) C++20

  template <class T>
  reference_wrapper<T> ref(reference_wrapper<T> t) noexcept; // (2) C++11

  template <class T>
  constexpr reference_wrapper<T> ref(reference_wrapper<T> t) noexcept; // (2) C++20

  template <class T>
  void ref(const T&&) = delete;                              // (3)
}
  • reference_wrapper[link reference_wrapper.md]

概要

変数への参照tを保持するreference_wrapperオブジェクトを生成する

C++20からは、テンプレートパラメーターTは不完全型をサポートしている。

戻り値

  • (1) : tを参照するreference_wrapper<T>オブジェクトを返す。
  • (2) : tをそのまま返す。

例外

投げない

#include <iostream>
#include <functional>

int main()
{
  int x = 3;

  // 参照ラッパーrは、変数xへの参照を保持する
  std::reference_wrapper<int> r = std::ref(x);
  ++x;

  std::cout << r.get() << std::endl;
}
  • std::ref[color ff0000]
  • std::reference_wrapper[link reference_wrapper.md]
  • r.get()[link reference_wrapper/get.md]

出力

4

バージョン

言語

  • C++11

処理系

参照