Home C&C++函数库 c++ 语法 程序源码 Linux C库

std::

reference_wrapper::reference_wrapper

公共成员函数  <functional>

initialization (1)
reference_wrapper (type& ref) noexcept;
reference_wrapper (type&&) = delete;
copy (2)
reference_wrapper (const reference_wrapper& x) noexcept;

构造引用包装器
构造一个reference_wrapper对象:

(1)initialization
该对象存储对ref的引用。
注意,这个构造函数只接受左值(右值版本已删除)。

(2) copy
该对象存储一个相同对象或函数x做 (x.get()。


☲  参数


ref
存储在对象中的左值引用。
type是描述所引用类型的成员类型(它是类模板形参T的别名)。

x
相同类型的reference_wrapper对象(具有相同的模板形参T)。

☣  示例



// reference_wrapper example:
#include <iostream>     // std::cout
#include <functional>   // std::reference_wrapper

int main () {
  int a(10),b(20),c(30);

  // an array of "references":
  std::reference_wrapper<int> refs[] = {a,b,c};

  std::cout << "refs:";
  for (int& x : refs) std::cout << ' ' << x;
  std::cout << '\n';

  return 0;
}

输出:
refs: 10 20 30

⇄ 数据竞争



初始化构造函数(1)不访问ref,但它获得了对它的引用,可以用来访问或修改它。
复制构造函数(2)访问它的参数(x),获取其所引用元素的引用,可用于访问或修改该元素。

☂ 异常安全性



无抛出保证:从不抛出异常。

🍄  另请参阅



ref 构建引用包装器(类模板)
cref 将引用包装器构造为const(类模板)
reference_wrapper::operator= 复制赋值(公共成员函数)
reference_wrapper::get 访问元素(公共成员函数)

联系我们 免责声明 关于CandCplus 网站地图