gcc と-Waggregate-return
フラグ warning:で次の例を試すと、次のようにfunction call has aggregate value
トリガーされます。
struct Element {
// ... stuff ...
}
Container<Element> elements(10);
for_each(begin(elements),end(elements),[](Element& e){
// ... modify elements ...
});
私が知る限り、-Waggregate-return
「構造体または共用体を返す関数が定義または呼び出された場合に警告する」というフラグは、私が正しく理解していれば、十分に大きなオブジェクトを返すことでスタックをオーバーフローさせる可能性があるためです。
ただし、型が であるラムダの型をfor_each
返します。なぜ警告がトリガーされるのですか? 私は何を逃したのですか?コードを改善するにはどうすればよいですか?void