std::reference_wrapper<T>::get, std::reference_wrapper<T>::operator T&

来自cppreference.com
 
 
 
函数对象
函数调用
(C++17)(C++23)
恒等函数对象
(C++20)
旧式绑定器与适配器
(C++17 前*)
(C++17 前*)
(C++17 前*)
(C++17 前*)
(C++17 前*)(C++17 前*)(C++17 前*)(C++17 前*)
(C++20 前*)
(C++20 前*)
(C++17 前*)(C++17 前*)
(C++17 前*)(C++17 前*)

(C++17 前*)
(C++17 前*)(C++17 前*)(C++17 前*)(C++17 前*)
(C++20 前*)
(C++20 前*)
 
 
operator T&()constnoexcept;
(1) (C++11 起)
(C++20 起为 constexpr)
T& get()constnoexcept;
(2) (C++11 起)
(C++20 起为 constexpr)

返回存储的引用。

目录

[编辑]参数

(无)

[编辑]返回值

存储的引用。

[编辑]示例

#include <cassert>#include <functional>#include <map>#include <optional>#include <string_view>   using Map =std::map<std::string_view, int>;using Opt =std::optional<std::reference_wrapper<Map::value_type>>;   Opt find(Map& m, std::string_view s){auto it = m.find(s);return it == m.end()? Opt{}: Opt{*it};}   int main(){ Map m{{"A", 1}, {"B", 2}, {"C", 3}};   if(auto opt = find(m, "C"); opt) opt->get().second=42;// std::optional::operator->() 返回到 std::reference_wrapper 的引用,而// reference_wrapper::get() 返回到 map::value_type(即 std::pair)的引用   assert(m["C"]==42);}

[编辑]参阅

调用其所存储的函数
(公开成员函数)[编辑]
close