我似乎有一个问题,qtcreator没有自动完成我的代码,这变得非常烦人。
当我尝试在for循环中使用结构绑定时,它无法自动完成..
std::vector<pair<string,AudioFile<double>>> list_of_files;
// Some init of list_of_file
for (const auto& [name,file]: this->list_of_files) // red line under this.. does seem to like structure bindings?
{
file.printSummary(); // qtcreator don't offer any autocomplete options?
}
qtcreator基本上抱怨上面发布的代码的一切......
但是当我这样写的时候:
for (int i = 0 ; i <list_of_file.size() ; i++) // No red lines under this..
{
list_of_files[i].second.printSummary() // Autocompletes without any problems.
}
qtcreator并没有抱怨这段代码,似乎自动完成它就好了。那么为什么它会导致c ++ 17风格出现这么多问题?
对此有何修复?
答案 0 :(得分:0)
对此的临时解决方案似乎是这样的 - 自动填充不会抱怨,并且似乎符合我对(可读性)的定义:
for ( const auto &elements : this->list_of_files)
{
auto name = std::get<0>(elements);
auto file = std::get<1>(elements);
}