std::reference_wrapper<T>::get, std::reference_wrapper<T>::operator T&
Источник: ru.cppreference.net
operator T& () const noexcept;
|
(1) | (начиная с C++11) (constexpr начиная с C++20) |
T& get() const noexcept;
|
(2) | (начиная с C++11) (constexpr начиная с C++20) |
Возвращает сохранённую ссылку.
Параметры
(нет)
Возвращаемое значение
Сохраненная ссылка.
Пример
Запустить этот код
#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); }
Смотрите также
|
вызывает сохранённую функцию
(public member function) |