2017-11-18 12 views
0

qtcreatorに問題があるようですが、私のコードは自動完成していません。かなり面倒です。構造体バインディングを使用すると、qtcreatorは自動補完されません。

現在は

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このコードに文句を言うと、それだけで罰金オートコンプリートしていないようだ、なぜこれほど多くのprobleを引き起こしている:私はこのようにそれを書きますC++ 17スタイルのms?

これに関する修正はありますか?

+0

だけQtCreator *エディタです*文句ました?それとも、ビルド時にエラーが出ますか?前者の場合は、エディタがまだ更新されていない(または古いバージョンを使用している)ためです。後者の場合、コンパイラはC++ 17をサポートしていないため、明示的に有効にする必要があります。 –

+0

Qt独自のコードモデルまたはclangコードモデルを使用していますか?ツール - >オプション - > C++ - >コード・モデルでチェックできます。技術的にはどちらもまだC++ 17をサポートしていないので、実際には問題にはなりません。 – nwp

+0

@Someprogrammerdude私は他のエディタを試していないし、最近qtcreatorを最新のバージョン5.9.2にアップグレードしました。コードはコンパイルされ、エラーは発生しません。それは両方のループで動作する必要があります。 – Lamda

答えて

0

このため、一時的な解決策は、このようなもののように見える - オートコンプリートが文句を言うと、(読みやすさ)の私の定義を合わせていないようです:

for (const auto &elements : this->list_of_files) 
{ 
    auto name = std::get<0>(elements); 
    auto file = std::get<1>(elements); 
} 
関連する問題