Search code examples
for-loopautocompleteqt-creatorc++17structured-bindings

qtcreator does not autocomplete when structure bindings is used?


I seem to have an issue with qtcreator not autocompleting my code, which is getting pretty annoying.

Currently is it not able to autocomplete when i try to use structure bindings in for loops like this..

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 basically complains about everything about the code posted above..

But when I write it like this:

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 does not complain about this code, and seem to autocomplete it just fine.. So why is it causing so many problems with c++17 style?

Any fixes for this?


Solution

  • A temporary solution for this seem to be something like this - which autocompletions does not complain about, and seem to suit my definition of (readability):

    for ( const auto &elements : this->list_of_files)
    {
       auto name = std::get<0>(elements);
       auto file = std::get<1>(elements);
    }