我有很多这样的代码
MyClass v = {1,2,3,4,5,6};
不幸的是,我的项目针对的是愚蠢的ARM编译器,它不支持特殊的C++ 11功能,特别是它不支持“initialyzer_list”。
当前唯一的解决方案如下所示:
MyClass v(6);
v[0]=1;
v[1]=2;
...
上面有很多代码和手动编辑的问题是灾难。
有什么方法可以用更少的血液克服它?
宏,库,妙招,还有可以通过MyClass中的某些编码进行find-replace-regexp的其他事情?
最佳答案
如果您可以更早地将列表声明为数组,则可以将大小作为模板参数获取:
class MyClass {
public:
template <std::size_t N>
MyClass(const int (&in)[N]);
};
int main() {
static const int arr[] = {1,2,3,4,5,6};
MyClass mc(arr);
}