对,我知道这在 C++0x/C++11 中是可能的,因此可以在 Visual Studio 2012 中完成。
但是,我正在运行 Visual Studio 2010。我想知道是否有可能做类似的事情:
void MyFunction(int myArray[])
{}
MyFunction({1,2,3});
无需事先声明数组的不便。
在 C++ Visual Studio 2010 使用的版本中是否有任何解决方法?或者以某种方式更新 Visual Studio 2010 用于支持更多 C++11 功能的编译器?还是我没有选择?
编辑:
感谢 yzt,我已经能够使用 Boost 做到这一点!
这是一些示例代码,以防其他人碰巧在我的位置(我似乎无法使用普通数组,但是std::vector
(或实际上是另一个 stl 容器)等会很好!):
功能:
void TestFunction(std::vector<int> myArray)
{
for(std::vector<int>::size_type i = 0; i < myArray.size(); ++i)
{
std::cout<<myArray[i]<<std::endl;
}
}
调用它:
TestFunction(boost::assign::list_of(1)(2)(3));