我有以下代码:
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'的行中,我收到了几条错误消息,但我不知道问题是什么:
预期';'在'['标记
之前预期';'在']'令牌之前
在')'令牌之前预期的主要表达
连续两次'['只会在'''令牌
之前引入一个属性代码完美编译没有标志,但这是一个功课,我必须使用它们。请解释有什么问题。