我有一些代码可以有效地减少到
#include <vector>
class A {
std::vector<int> m_sizes;
public:
A(std::initializer_list<int> const& sizes) : m_sizes(sizes) {}
};
class B {
A m_a;
public:
B(int size_front, int size_back, std::initializer_list<int> const& sizes) : m_a({ size_front, sizes, size_back }) {}
};
编译器抱怨没有实例A::A
匹配参数列表。有什么方法可以使{ int, std::initializer_list<int>, int }
a变平,std::initializer_list<int>
还是我必须提供A
一个额外的构造函数来处理这种情况?如果我不能修改A
类怎么办?