作者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/cn.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