Что такое decltype?

Что такое decltype?

В С оператор decltype используется для определения типа выражения.

Этот опертор был введён в поточной вресии C , и в основном он используется в обобщённом программировании, когда сложно или даже невозможно определить типы, которые будут зависимыи от параметров шаблона.

Исторически подобную функцию в языках программирования (таких как C#, например) называли typeof, но для С было решено выбрать название decltype, котрая по своему названию как-бы давала понять, что она будет возвраща ть именно задекларированный тип выражения, а не просто тип.

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

И также, подобно оператору sizeof, операнд decltype не расчитывается.

Типичный синтаксис оператора decltype:

int i;
decltype(i); // int
decltype(i   1); // int
decltype((i)); // int