c++不允許直接推導auto返回型別,如果要用auto返回型別,需要用decltype 宣告尾返回型別
如下面**:
template
auto add(a x, b y) ->decltype(x + y)
呼叫方式還是和普通的模板元函式一樣
std::cout << add(5,8) << std::endl;
std::cout << add(std::string("i"),std::string("love")).c_str() << std::endl;
可以用typeid輸出型別名嗎?
std::cout << typeid(add(std::string("123"), std::string("456"))).name() << std::endl;
執行輸出:
C 11 型別推導auto
在c 11之前,auto關鍵字用來指定儲存期。在新標準中,它的功能變為型別推斷。auto現在成了乙個型別的佔位符,通知編譯器去根據初始化 推斷所宣告變數的真實型別。使用auto會拖慢c 效率嗎?完全不會,因為在編譯階段編譯器已經幫程式設計師推導好了變數的型別。使用auto會拖累c 編譯效率嗎?完全不...
C 11 型別推導auto關鍵字
在c 11中,auto關鍵字被作為型別自動型別推導關鍵字 1 基本用法 c 98 型別 變數名 初值 int i 10 c 11 auto 變數名 初值 auto i 3.14 借助於auto關鍵字,可對變數進行隱式的型別定義,即由編譯器在編譯期間根據變數的初始化語句,自動推斷出該變數的型別.aut...
C 11 auto自動型別推導
1.auto型別推導auto x 5 正確,x是int型別 auto pi new auto 1 正確,批是int const auto v x,u 6 正確,v是const int 型別,u是const int static auto y 0.0 正確,y是double型別 auto int r ...