Re: [問題] 初值陣列 對象為 指標時怎麼初始化

看板C_and_CPP作者 (咕啾咕啾魔法陣)時間8年前 (2017/03/25 22:00), 8年前編輯推噓6(6012)
留言18則, 4人參與, 最新討論串2/3 (看更多)
雖然原來的做法不行,但你可以考慮用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

03/26 19:17, , 1F
感謝提供方法,是利用可變引數輸入嗎~有點長呢QuQ
03/26 19:17, 1F

03/26 19:20, , 2F
需要花點時間消化一下語法
03/26 19:20, 2F

03/26 20:02, , 3F
如果你不想用tuple,可以把template第一個參數改成大
03/26 20:02, 3F

03/26 20:02, , 4F
03/26 20:02, 4F

03/26 20:02, , 5F
這樣語法會簡單很多
03/26 20:02, 5F

03/26 21:17, , 6F
這樣好像c++17的apply
03/26 21:17, 6F

03/26 21:56, , 7F
能提供完整可以運行的代碼給我參考嗎~~QuQ
03/26 21:56, 7F

03/26 22:00, , 8F
直接把你原來的ctor換掉就好了,外部使用沒變
03/26 22:00, 8F
後來查到一個不用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

03/30 01:31, , 9F
非常感謝~ (不好意思~這幾天有點忙還沒答覆)
03/30 01:31, 9F

03/30 08:56, , 10F
...的關鍵字是parameter pack
03/30 08:56, 10F

03/30 08:57, , 11F
可以用fold expr縮短運算式,要取得特定參數可用tuple
03/30 08:57, 11F

03/31 14:39, , 12F
感謝~ "..."理解了 fole expr 是指什麼意思呢~
03/31 14:39, 12F

03/31 15:05, , 13F
:: 不是用來指定看是哪一個class 或是哪一個namesp 嗎
03/31 15:05, 13F

03/31 15:06, , 14F
為什麼這裡可以用來返回一個數值,怎做到的
03/31 15:06, 14F

03/31 18:08, , 15F
呃? 你講的是哪一個 :: ?
03/31 18:08, 15F

04/01 13:50, , 16F
std::tuple_size<decltype(std::make_tuple(args...))>
04/01 13:50, 16F

04/01 13:50, , 17F
::value
04/01 13:50, 17F

04/01 13:50, , 18F
這個,不好意思沒說清楚
04/01 13:50, 18F
文章代碼(AID): #1OrdVYh_ (C_and_CPP)
文章代碼(AID): #1OrdVYh_ (C_and_CPP)