看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: Win10, Linux, ...) All 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) All 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) libstdc++ 問題(Question): 總問題:請問最後三行的動作做了什麼事? 小問題: 請解說一下 type 變成代表什麼了,又 最後一行兩個()()是如何解釋? 這種問題以後如何尋找谷歌關鍵字?或者哪裡有討論群? 謝謝板上各位大大 程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔) 出處 http://en.cppreference.com/w/cpp/header/type_traits namespace std { template <class T, T v> struct integral_constant { static constexpr T value = v; using value_type = T; using type = integral_constant<T, v>; constexpr operator value_type() const noexcept { return value; } constexpr value_type operator()() const noexcept { return value; } }; } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.224.59.196 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1526891682.A.56D.html
shadow0326: 依序是type alias、user-defined conversion、 05/21 17:51
shadow0326: operator overloading 05/21 17:52
shadow0326: 兩個()中,第一個()代表對圓括號overloading,第二個 05/21 17:53
shadow0326: ()代表這個overloading不吃任何參數 05/21 17:54
shadow0326: 通常就是讓class變成functor用的囉 05/21 17:56
LPH66: 以前回過一模一樣的問題直接給文章代碼 #1OvC3pJQ 05/21 21:44
tomjpsun: 感謝回答, 推 LPH66 以前那篇... 05/22 09:21