我需要详细说明以下类的构造函数:
class Foo {
public:
const std::vector<Bar> bars;
Foo(int num_bars, ...);
}
为了便于讨论,假设额外的参数都是const Bar&
或Bar
。
我需要使用va_list中的条形图初始化v。我怎么能这样做?
答案 0 :(得分:4)
你不能。改为使Foo
成为可变参数模板:
template <typename ...ArgumentTypes>
Foo(ArgumentTypes&& args...):
bars({std::forward<ArgumentTypes>(args)...})
{
}
这使用了向量的初始化列表构造函数。