-1
include <vector>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    vector<vector<int>> vecVecInts;

    return 0;
}

Visual Studio 2008 言語拡張機能をオフにして、上記のコードを警告やエラーなしでコンパイルしました。

次の行を置き換える必要があることを覚えていました

vector<vector<int>>

vector<vector<int> >

その時点でのコンパイラは最終的に を認識しないため>>です。

質問> C++ 標準でこの構文がより適切に導入されるのはいつですか?

ありがとうございました

4

1 に答える 1

6

これは、最新の標準であるC ++ 11、§14.2/3で導入されました。

template-argument-listを解析する場合、ネストされていない最初の非ネスト>は、大なり演算子ではなく、終了区切り文字として使用されます。同様に、ネストされていない最初のトークンは>>2つの連続しているが別個のトークンとして扱われ>、最初のトークンはtemplate-argument-listの終わりと見なされ、template-idを完成させます。

于 2012-04-04T14:51:33.147 に答える