c ++ lambda没有在Eclipse中使用-pedantic和-Werror标志进行编译

时间:2014-12-13 11:07:57

标签: c++ eclipse c++11 lambda

我有以下代码:

class Player{

    std::vector<std::string> data;

    static std::map<std::string, int> index_table;
    static std::map<std::string, int>& index_acces() {return index_table;}
    //...
};

//...

std::ifstream input("players.csv");

[&input](){
    std::string s;
    getline(input, s);
    std::stringstream sstr(s);

    for(int i = 0; sstr.good();++i)
        Player::index_acces()[[&sstr]()->std::string{std::string s; getline(sstr, s, ';'); return s;}()] = i;
}();

'players.csv'的第一行是:'playerID; birthYear; birthMonth; birthDay; birthCountry; birthState; birthCity; deathYear; nameFirst; nameLast; nameGiven; bats; throws'和'index_table'表示这些的索引属性。

在Eclipse中,我设置了以下标志:-pedantic,-Wall,-Wextra,-Werror。表盘设置为c ++ 11。在我调用'index_access'的行中,我收到了几条错误消息,但我不知道问题是什么:

预期';'在'['标记

之前

预期';'在']'令牌之前

在')'令牌之前预期的主要表达

连续两次'['只会在'''令牌

之前引入一个属性

代码完美编译没有标志,但这是一个功课,我必须使用它们。请解释有什么问题。

0 个答案:

没有答案