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

ein*_*ica 3 c++ constants vector variadic-functions initializer-list

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

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

为了讨论的方便,假设额外的参数是 allconst Bar&或 just Bar

我需要使用 va_list 中的条来初始化 v 的构造。我怎样才能做到这一点?

Pra*_*han 5

你不能。改为制作Foo一个可变参数模板:

template <typename ...ArgumentTypes>
Foo(ArgumentTypes&& args...):
bars({std::forward<ArgumentTypes>(args)...})
{
}
Run Code Online (Sandbox Code Playgroud)

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