如何在varargs构造函数的初始化列表中初始化向量?

时间:2014-07-10 07:03:25

标签: c++ vector const variadic-functions initializer-list

我需要详细说明以下类的构造函数:

class Foo {
public:
    const std::vector<Bar> bars;
    Foo(int num_bars, ...);
}

为了便于讨论,假设额外的参数都是const Bar&Bar

我需要使用va_list中的条形图初始化v。我怎么能这样做?

1 个答案:

答案 0 :(得分:4)

你不能。改为使Foo成为可变参数模板:

template <typename ...ArgumentTypes>
Foo(ArgumentTypes&& args...):
bars({std::forward<ArgumentTypes>(args)...})
{
}

这使用了向量的初始化列表构造函数。