что возвращает decltype и как он работает?

Всем здравствуйте. Я начал недавно изучать c++ и столкнулся с оператором decltype. Насколько я знаю, операторы как и функции возвращают определенное значение, но ознакомившись с документацией на сайте microsoft (https://docs.microsoft.com/ru-ru/cpp/cpp/decltype-cpp?view=msvc-160) я увидел следующую строчку "decltype Описатель типа возвращает тип указанного выражения.". Насколько мне известно тип, в качестве возвращаемого значения, не может быть возвращен, но тогда как это происходит? Заранее спасибо, надеюсь вы поможете.


Ответы (2 шт):

Автор решения: Harry

Смотрите, например

int a;

...

Хочу объявить переменную того же типа, что и a...

decltype(a) b;

Грубо - но для понимания сойдет - decltype(a) заменяется типом, с которым была объявлена a - declared type

→ Ссылка
Автор решения: user7860670

decltype и не имеет никакого возвращаемого значения, так как это не функция, а часть спецификатора типа. По сути это конструкция, родственная * (делает из типа слева указатель или && (делает из типа слева rvalue ссылку). В отличие от них, delctype делает тот тип, который имеет выражение в круглых скобках. При этом выражение в круглых скобках не является выполняемым (unevaluated context).

→ Ссылка