そうです、これは 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));