看板 C_and_CPP 關於我們 聯絡資訊
雖然原來的做法不行,但你可以考慮用variadic template加tuple template<class ...U> Arr(U ...args):arr(new T[std::tuple_size<decltype(std::make_tuple(args...))>:: value]{args...}){} -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.226.24 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1490450402.A.AFF.html
hunandy14: 感謝提供方法,是利用可變引數輸入嗎~有點長呢QuQ03/26 19:17
hunandy14: 需要花點時間消化一下語法03/26 19:20
loveflames: 如果你不想用tuple,可以把template第一個參數改成大03/26 20:02
loveflames: 小03/26 20:02
loveflames: 這樣語法會簡單很多03/26 20:02
Sidney0503: 這樣好像c++17的apply03/26 21:17
hunandy14: 能提供完整可以運行的代碼給我參考嗎~~QuQ03/26 21:56
loveflames: 直接把你原來的ctor換掉就好了,外部使用沒變03/26 22:00
後來查到一個不用tuple獲得size的方式 template<class ...U> Arr(U ...args):arr(new T[sizeof...(args)]{args...}){} ※ 編輯: loveflames (180.217.249.182), 03/26/2017 22:44:30
hunandy14: 非常感謝~ (不好意思~這幾天有點忙還沒答覆) 03/30 01:31
loveflames: ...的關鍵字是parameter pack 03/30 08:56
loveflames: 可以用fold expr縮短運算式,要取得特定參數可用tuple 03/30 08:57
hunandy14: 感謝~ "..."理解了 fole expr 是指什麼意思呢~ 03/31 14:39
hunandy14: :: 不是用來指定看是哪一個class 或是哪一個namesp 嗎 03/31 15:05
hunandy14: 為什麼這裡可以用來返回一個數值,怎做到的 03/31 15:06
LPH66: 呃? 你講的是哪一個 :: ? 03/31 18:08
hunandy14: std::tuple_size<decltype(std::make_tuple(args...))> 04/01 13:50
hunandy14: ::value 04/01 13:50
hunandy14: 這個,不好意思沒說清楚 04/01 13:50