gpt4 book ai didi

c++ - 在编译时将 initializer_list 转换为 initializer_list>

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:28:44 28 4
gpt4 key购买 nike

我有一个类构造函数接受一个

initializer_list<T>

这个构造函数必须运行接受一个

的父类构造函数
initializer_list<vector<T>>.

所以我必须将初始化列表转换为二维初始化列表。

{1, 2, 3, 4} to { {1}, {2}, {3}, {4} }

编辑:

我有一个类构造函数接受一个

initializer_list<T>

这个构造函数必须运行接受一个

的父类构造函数
initializer_list<array<T, 1>>.

所以我必须将初始化列表转换为二维初始化列表。

{1, 2, 3, 4} to { {1}, {2}, {3}, {4} }

最佳答案

为什么不让您的子类获取参数包并将其转发给父构造函数?

struct Parent
{
template<typename T>
Parent(std::initializer_list<std::array<T, 1>>) { }

virtual ~Parent() = default;
};

struct Child : Parent
{
template<class... Args>
Child(Args&&... args) : Parent{{{args}...}} { }
};

关于c++ - 在编译时将 initializer_list<T> 转换为 initializer_list<vector<T>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25465233/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com