decltype – operator pozwalający na uzyskanie typu wyrażenia w języku programowania C++. Został on wprowadzony w wersji C++11 standardu C++. Jego głównym przeznaczeniem jest programowanie uogólnione, w którym często trudno, jeśli w ogóle jest to możliwe, określić typy zależne od parametrów szablonu.
Wzrost popularności technik programowania uogólnionego następował od lat dziewięćdziesiątych XX wieku. Wówczas zauważona została potrzeba mechanizmu do wyznaczania typu. Wielu producentów kompilatorów wdrożyło własne wersje takiego operatora, zazwyczaj nazywanego typeof oraz opracowało pewne przenośne implementacje o ograniczonej funkcjonalności, na bazie istniejących funkcji języka. W 2002 roku Bjarne Stroustrup zaproponował, aby standardową formę takiego operatora dodać do języka C++ i zasugerował nazwę „decltype”, aby odzwierciedlić, że operator zwraca „deklarowany typ” wyrażenia.
Semantyka decltype została tak zaprojektowana, aby zaspokoić potrzeby autorów bibliotek z kodem uogólnionym, jak również początkujących programistów. W ogólności, typ określony za pomocą tego operatora zgadza się z typem obiektu lub funkcji zadeklarowanym w kodzie źródłowym.