由于微软不支持使用初始化列表来构造的一个不错的 C++11 特性std::vector
,不幸的是,我需要重构一些代码以与 VS 编译器一起使用。
我能想到的最好方法是使用数组指针和长度构造vector
函数。以前我这样做过:
MyClass(std::initializer_list<T> init):myStdVector(init){
这让我可以做一些好事,比如:
MyClass hi({1,2,3,4});
我认为合适的项目数量不定。
如何通过直接传递数组来达到同样的优雅?是否可以在函数参数中实际初始化数组?
我可以这样做:
MyClass(T*initArray,int arraySize):myStdVector(initArray,initArray+arraySize){
但是我必须这样做:
int whatever[4]={1,2,3,4};
MyClass hi(whatever,4);
看起来很笨重。也许我错过了更好的解决方案?