c 中關鍵字decltype

2021-08-21 21:44:51 字數 534 閱讀 9595

decltype推導出的型別與源**中宣告的物件或函式的型別完全匹配。類似於sizeof操作符,decltype也不需對其運算元求值。粗略來說,decltype(e)返回型別前,進行推導:

如果表示式e引用本地或命名空間作用域中的變數,靜態成員變數或函式引數,那麼結果就是變數或引數的宣告型別

否則,如果e是左值,decltype(e)則是t&,te的型別在**; 如果e是乙個x值,其結果是t&&; 否則,e是prvalue,結果是t。 如:

#include 

#include

using

std::vector;

using

std::cin;

using

std::cout;

using

std::endl;

void test01()

執行結果圖:

auto關鍵字 decltype關鍵字

自動型別推斷 1 使用auto關鍵字的變數必須有初始值。在定義的時候進行初始化 2 函式引數和模板引數不能被宣告為auto。3 使用auto關鍵字進行型別推導時,如果初始化表示式是引用型別,編譯器會去除引用,除非顯示宣告 4 使用auto使用auto關鍵字進行型別推導時,編譯器會自動忽略頂層cons...

c auto和decltype關鍵字

可以用 auto 關鍵字定義變數,編譯器會自動判斷變數的型別。例如 auto i 100 i 是 int auto p new a p 是 a auto k 34343ll k 是 long long 有時,變數的型別名特別長,使用 auto 就會很方便。例如 map mp for auto i m...

C auto和decltype關鍵字

可以用 auto 關鍵字定義變數,編譯器會自動判斷變數的型別。例如 auto i 100 i 是 int auto p newa p 是 a auto k 34343ll k 是 long long有時,變數的型別名特別長,使用 auto 就會很方便。例如 map int,greater mp fo...