2

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

4

4 に答える 4