C11 decltype的用法超簡單範例

2021-10-06 18:41:51 字數 442 閱讀 3809

//decltype主要作用是通過物件編譯期推算獲得型別,輸入引數是物件/例項/變數名,返回乙個型別。

//常用用法場景:通過auto 推算的宣告的變數很多時候有很長一大串,咱們不太好寫出變數型別,

//可是又需要用剛才的auto型別宣告其他變數

/*auto a=...........;

decltype(a) b;

*///以lambda表示式的語法通過通過引數推算出返回值

/* //編譯不過去吧??!!

templatedecltype(x+y) add(t1 x,t2 y)

*///真正的改進

//類似於lambda表示式

templateauto add(t1 x, t2 y)->decltype(x + y)

private:

};

C 11decltype型別指示符

c 11引入型別說明符decltype,作用是選擇並返回運算元的資料型別,在此過程中,編譯器分析表示式並得到它的型別,卻不計算表示式的值 decltype f sum x sum的型別就是函式f返回的型別編譯器並不實際呼叫函式f,而是返回f呼叫發生時的返回型別作為sum的型別。decltype處理c...

C 11中的decltype用法注意

感謝這位博主的分享 c 11新特性 decltype decltype是c 11新增的乙個新的關鍵字,目的是選擇並返回運算元的資料型別,重要的是,在此過程中編譯器分析表示式並得到它的型別,卻不實際計算表示式的值。對於內建型別的物件,使用decltype很直觀,但當引數為復合型別的時候就應該注意一些使...

C 之decltype和auto的用法

返回值 decltype 表示式 1 當表示式返回右值,則decltype返回該表示式的型別 2 當表示式返回左值,則decltype返回該表示式的左值引用型別 注 auto的用法 1 自動型別推斷 templatet,class u void myfunc t t,u u 2 返回值佔位。函式模板...