0

Visual Studio 2012 で次の構文エラーが発生します。

1>...\documents\visual studio 2012\projects...\line.h(21): エラー C2143: 構文エラー: ' )' の前に ' const'がありません

次のものを作成しようとすると(別のファイルで定義されています)tokenListtypedeffor std::vector<std::string>

extern std::map<std::string,std::function<std::string (const tokenList& tokens)>> evaluateOperator; //<-- This is the line with the error

私は次のことを望んでいたところ:

evaluateOperator["="] = [](const tokenList& tokens) -> std::string
{
    std::string temp("");
            ...
};

私は何を間違っていますか?(私はC++ 11に非常に慣れていません)。入力文字列に基づいて文字列のリストに関数を適用するという、問題全体に対処する方法についての提案もいただければ幸いです。ありがとうございました。

編集:そして、これがSSCEが非常に重要な理由です-コードの順序が間違っているとして(ICC2013を使用した後)エラーの原因を突き止めました-typedefはマップ宣言の後に来ました。私としてはばかげていますが、インテル® C++ コンパイラー 2013 が構文エラーの原因を即座に検出できたのに対し、VC++ は頭を悩ませていたのは興味深いことです。

4

1 に答える 1