質問: 1) // もしゲームパッドを使うなら { set_pad_config(); } } ``` 上のようにプログラムを書き換えると*式にはポインター型が必要です*というエラーをはかれたのですが、なぜでしょうか? 原因が分からないので足らなければ他にどのような情報を書けばいいか教えてください win10 VC++2017 ->を.に変更した際にエラーはなくなったのですが、値を変更することはできていませんでした auto& itr : _data_listにしてもダメでした 重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態 エラー (アクティブ) E0044 式にはポインター型が必要です th_act_remake C:\Users\nicoyou\Documents\Visual Studio 2017\Projects\th_act_remake\th_act_remake\ConfigScene.cpp 157 エラー (アクティブ) E0044 式にはポインター型が必要です th_act_remake C:\Users\nicoyou\Documents\Visual Studio 2017\Projects\th_act_remake\th_act_remake\ConfigScene.cpp 157 エラー (アクティブ) E0044 式にはポインター型が必要です th_act_remake C:\Users\nicoyou\Documents\Visual Studio 2017\Projects\th_act_remake\th_act_remake\ConfigScene.cpp 157 エラー (アクティブ) E0044 式にはポインター型が必要です th_act_remake C:\Users\nicoyou\Documents\Visual Studio 2017\Projects\th_act_remake\th_act_remake\ConfigScene.cpp 157 エラー (アクティブ) E0044 式にはポインター型が必要です th_act_remake
回答: 範囲ベースのfor文の場合、`auto itr`のitrはイテレータ型ではなく、 vector _data_list; と宣言した際のHogehoge型になります。 ですので、以下のようにドットを使うのが正しいかと思います。 ``` vector _new_list; for (auto itr : _data_list) { // 初期の数値を読み込む Hogehoge new_item(itr); // ←要コピーコンストラクタ new_item.value = GetPrivateProfileInt(itr.section.c_str(), itr.key.c_str(), itr.value, itr.path.c_str()); _new_list.push_back(new_item); ```