Всем здравствуйте. Я начал недавно изучать c++ и столкнулся с оператором decltype. Насколько я знаю, операторы как и функции возвращают определенное значение, но ознакомившись с документацией на сайте microsoft (https://docs.microsoft.com/ru-ru/cpp/cpp/decltype-cpp?view=msvc-160) я увидел следующую строчку "decltype Описатель типа возвращает тип указанного выражения.". Насколько мне известно тип, в качестве возвращаемого значения, не может быть возвращен, но тогда как это происходит? Заранее спасибо, надеюсь вы поможете.
Смотрите, например
int a;
...
Хочу объявить переменную того же типа, что и a...
decltype(a) b;
Грубо - но для понимания сойдет - decltype(a) заменяется типом, с которым была объявлена a - declared type
decltype и не имеет никакого возвращаемого значения, так как это не функция, а часть спецификатора типа. По сути это конструкция, родственная * (делает из типа слева указатель или && (делает из типа слева rvalue ссылку). В отличие от них, delctype делает тот тип, который имеет выражение в круглых скобках. При этом выражение в круглых скобках не является выполняемым (unevaluated context).
Сборка персонального компьютера от Artline: умный выбор для современных пользователей