【发布时间】:2018-09-05 15:42:34
【问题描述】:
我正在寻找解决方案,将 User 对象的参数组合成可迭代的 std::vector 或 std::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<User, User, User, User>? -
所有向量元素具有相同的单一类型。您的可变参数模板毫无意义。
-
@liliscent 用户是父类接口
-
@StoryTeller 是的,完全正确
-
std::vector仅支持单一类型T。
标签: c++ vector c++14 variadic-templates c++17