配列std::vector<Foo>があり、すべてのfooを繰り返し処理して、次のように実行したいとします。
for (auto foo : vecFoo)
foo.x = 10;
これは、vecFooのコンテンツへの参照ではなく、コンテンツのローカルコピーを作成するため、何もしません。正しいループは次のとおりです。
for (auto& foo : vecFoo)
foo.x = 10;
これは私が今何度か犯した間違いなので、間違ったときに私を捕まえる解決策を見つけたいと思います。構造体に対してできること、またはオンにできる警告フラグのいずれかで満足しています。のコピーコンストラクターをプライベートにしようとしましFooたが、それができなくなってしまいますpush_back。emplace_backこれは明らかに私が望んでいることではありません。