decltype — ключевое слово языка программирования C++, которое появилось в обновлённом стандарте C++11. Наряду с ключевым словом auto оно используется для выведения типов выражений, получаемых в качестве своего аргумента.

Ключевое слово decltype нашло широкое распространение при работе с обобщёнными типами данных. Различие между decltype и auto сводится к типу возвращаемого значения: результат использования auto теряет квалификаторы типов const и &, а результат использования decltype сохраняет их для дальнейшей работы.

Также в стандарте C++11 ключевое слово decltype можно использовать для объявления типа возвращаемого функцией значения в тех случаях, когда применяется новый способ записи сигнатуры функции (в котором возвращаемое значение следует за списком её параметров).

В обновлённом стандарте языка C++14 появилась возможность объявлять переменные со спецификатором типа decltype(auto), который предписывает компилятору выбирать для них тип данных на основе типа инициализатораplaceholder type specifiers (since C++11) en.cppreference.com.

Примечания

Источники

Категория:Синтаксис C++ Категория:Нововведения стандарта C++11