std::
ref
类模板 <functional>
reference (1) |
template <class T>
reference_wrapper<const T> ref (const T& elem) noexcept;
|
copy (2) |
template <class T>
reference_wrapper<const T> ref (reference_wrapper<T>& x) noexcept;
|
move (3) |
template <class T>
void ref (const T&&) = delete;
|
构建引用包装器
构造一个适当的reference_wrapper(引用包装器)类型的对象,保存对elem的引用。
如果参数本身是reference_wrapper(引用包装器),它会创建一个x的副本。
该函数调用相应的reference_wrapper构造函数。
☲ 参数
-
elem
-
一个左值引用对象,其引用存储在对象中。
-
x
-
复制的reference_wrapper对象。
☉ 返回值
适当类型的reference_wrapper对象,用于保存T类型的元素。
☣ 示例
// ref example
#include <iostream> // std::cout
#include <functional> // std::ref
int main () {
int foo (10);
auto bar = std::ref(foo);
++bar;
std::cout << foo << '\n';
return 0;
}
|
输出:
11
⇄ 数据竞争
reference (1)不访问elem,但是返回的对象可以访问或修改elem。
copy(2)访问其实参(x),返回一个可用于访问或修改其引用的元素的对象。
☂ 异常安全性
无抛出保证:从不抛出异常。
🍄 另请参阅