Visual Studio 2012 で次の構文エラーが発生します。
1>...\documents\visual studio 2012\projects...\line.h(21): エラー C2143: 構文エラー: '
)
' の前に 'const
'がありません
次のものを作成しようとすると(別のファイルで定義されています)tokenList
、typedef
for 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++ は頭を悩ませていたのは興味深いことです。