Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpTsDa 397 of 696 menu
◀ ▶

Тип переменной через decltype(auto) в C++

Ссылочность, которую теряет обычный auto, сохраняет decltype(auto): тип выводится так же, как если бы переменную объявили через decltype от выражения.

Функция, возвращающая ссылку на аргумент, подходит, чтобы увидеть разницу: с auto получится копия, с decltype(auto) - та же ссылка. Запишем pick, возвращающую первый аргумент, и изменим исходную переменную через decltype(auto):

#include <iostream> int& pick(int& left, int& right) { return left; } int main() { int a = 1; int b = 2; decltype(auto) ref = pick(a, b); ref = 9; std::cout << a << "\n"; return 0; }

Свяжите результат pick с auto, измените копию и выведите a, чтобы убедиться, что исходное значение не меняется.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить