作者loveflames (咕啾咕啾魔法陣)
看板C_and_CPP
標題Re: [問題] 初值陣列 對象為 指標時怎麼初始化
時間Sat Mar 25 22:00:00 2017
雖然原來的做法不行,但你可以考慮用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://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1490450402.A.AFF.html
1F:推 hunandy14: 感謝提供方法,是利用可變引數輸入嗎~有點長呢QuQ03/26 19:17
2F:→ hunandy14: 需要花點時間消化一下語法03/26 19:20
3F:→ loveflames: 如果你不想用tuple,可以把template第一個參數改成大03/26 20:02
4F:→ loveflames: 小03/26 20:02
5F:→ loveflames: 這樣語法會簡單很多03/26 20:02
6F:推 Sidney0503: 這樣好像c++17的apply03/26 21:17
7F:→ hunandy14: 能提供完整可以運行的代碼給我參考嗎~~QuQ03/26 21:56
8F:→ 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
9F:→ hunandy14: 非常感謝~ (不好意思~這幾天有點忙還沒答覆) 03/30 01:31
10F:→ loveflames: ...的關鍵字是parameter pack 03/30 08:56
11F:→ loveflames: 可以用fold expr縮短運算式,要取得特定參數可用tuple 03/30 08:57
12F:推 hunandy14: 感謝~ "..."理解了 fole expr 是指什麼意思呢~ 03/31 14:39
13F:推 hunandy14: :: 不是用來指定看是哪一個class 或是哪一個namesp 嗎 03/31 15:05
14F:→ hunandy14: 為什麼這裡可以用來返回一個數值,怎做到的 03/31 15:06
15F:推 LPH66: 呃? 你講的是哪一個 :: ? 03/31 18:08
16F:推 hunandy14: std::tuple_size<decltype(std::make_tuple(args...))> 04/01 13:50
17F:→ hunandy14: ::value 04/01 13:50
18F:→ hunandy14: 這個,不好意思沒說清楚 04/01 13:50