9

これはもともとこの質問の一部でした:

非 const 参照による auto-keyword を使用して宣言されたラムダを std::function パラメータ型への引数として渡す

しかし、私はそれを別のものにすることにしました。

ラムダまたは他の関数オブジェクトを参照または値で渡す方が良い/より慣用的なのはどのような状況ですか?

4

1 に答える 1

13

「ラムダ」には、パラメーターとして受け取るオブジェクトと同じルールを使用します。

関数の目的が呼び出し元のオブジェクトを変更することである場合、関数は非 const 参照を使用する必要があります。const&オブジェクトを変更せずにオブジェクトを使用するだけの場合、関数は使用する必要があります。また、オブジェクトを内部ストレージにコピー/移動する場合は、値渡しする必要があります。

于 2013-04-13T05:39:12.237 に答える