gpt4 book ai didi

C++ 从参数参数包创建 vector 或列表

转载 作者:行者123 更新时间:2023-11-30 01:04:42 24 4
gpt4 key购买 nike

我正在寻找一个解决方案,将 User 对象的参数组合成一个可迭代的 std::vectorstd::list

auto user_group = create_user_group(User(), User(), User(), User());

例子

template <typename ...Users>
auto create_user_group(Users&&... users)
{
return std::vector<Users...>{std::forward<Users>(users)...};
}

错误

error: wrong number of template arguments (4, should be at least 1)
return std::vector<Users...>{std::forward<Users>(users)...};

最佳答案

您需要分隔单个参数以传递给 std::vector:

template <typename User, typename ...Users>
auto create_user_group(User &&user, Users&&... users)
{
return std::vector<std::decay_t<User>>{
std::forward<User>(user), std::forward<Users>(users)...
};
}

关于C++ 从参数参数包创建 vector 或列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49509362/

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