8
これは、もともとこの質問の一部であった:C++ 11:(λまたは他の)関数オブジェクトを参照または値で渡しますか?
が、私はそれ別の1作ることにしました。
ラムダや他の関数オブジェクトを参照や値で渡す方が良い場合や、もっと慣れた方が良いでしょうか?
これは、もともとこの質問の一部であった:C++ 11:(λまたは他の)関数オブジェクトを参照または値で渡しますか?
が、私はそれ別の1作ることにしました。
ラムダや他の関数オブジェクトを参照や値で渡す方が良い場合や、もっと慣れた方が良いでしょうか?
パラメータとして使用するの任意のオブジェクトに対して同じラムダを使用します。
関数の目的が呼び出し側のオブジェクトを変更することである場合、関数は非const参照を使用する必要があります。オブジェクトを変更せずにそのまま使用する場合は、const&
を使用する必要があります。オブジェクトを内部ストレージにコピー/移動する場合は、値渡しする必要があります。
私は、このフォーラムでいくつかのコメントを読んで、値によってファンクタを渡すことは慣用的であることを覚えています。ファンクタが範囲外に渡される危険性があるのであれば、バイナリイディオムが優れていると思います。 – Jeet
非const参照でラムダを渡すと、それを変更できます。しかし、「ラムダを修正する」とはどういう意味ですか? – Ignorant