[問題] 這個 template 後面三行需要詳解...

看板C_and_CPP作者 (湯姆熊)時間7年前 (2018/05/21 16:34), 編輯推噓1(106)
留言7則, 3人參與, 7年前最新討論串1/1
開發平台(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

05/21 17:51, 7年前 , 1F
依序是type alias、user-defined conversion、
05/21 17:51, 1F

05/21 17:52, 7年前 , 2F
operator overloading
05/21 17:52, 2F

05/21 17:53, 7年前 , 3F
兩個()中,第一個()代表對圓括號overloading,第二個
05/21 17:53, 3F

05/21 17:54, 7年前 , 4F
()代表這個overloading不吃任何參數
05/21 17:54, 4F

05/21 17:56, 7年前 , 5F
通常就是讓class變成functor用的囉
05/21 17:56, 5F

05/21 21:44, 7年前 , 6F
以前回過一模一樣的問題直接給文章代碼 #1OvC3pJQ
05/21 21:44, 6F

05/22 09:21, 7年前 , 7F
感謝回答, 推 LPH66 以前那篇...
05/22 09:21, 7F
文章代碼(AID): #1R0eIYLj (C_and_CPP)