1

C++ 11 での std::reference_wrapper の実装に気付きましたが、「生の」参照変数の代わりに std::reference_wrapper を使用する必要がある理由を知りたいです。

参照ラッパーはコピーできるオブジェクトであることは理解しましたが、参照の代わりにそれを使用する必要があるのはなぜですか? この機能のポイントは何ですか? 次の疑似コードを考えてみましょう

class A;

A myA{}; 
A& refMyA = &a;
std::reference_wrapper<A> refWMyA = std::ref(A); 

void foo (const A& aRef) {// do stuff}

void bar (const std::reference_wrapper<A> aRef) {// do stuff}

fooよりもbarを好むのはなぜですか?

4

0 に答える 0