我注意到 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}
为什么我更喜欢bar而不是foo?