1、ref简介

  reference_wrapper包含在ref库中,它是引用包装器类型,即其内部包装了引用。

  成员函数get()、get_pointer()分别可以获得被包装的引用和其指针。使用需要包含头文件"boost/ref.hpp"。

#include "boost/ref.hpp"
#include <cassert>
int main()
{
    int x = 5;
    boost::reference_wrapper<int> rw(x);

    rw.get() = 10; //获得引用
    *rw.get_pointer() = 15; //获得指针

    int n = rw; //隐式转换为int
    assert(x == rw); //隐式转换为int

    rw = 20; //错误!引用包装器不能作为左值
    (int&)rw = 20; //显示转换为int&,这样可以作为左值    
    assert(x == 20);

    boost::reference_wrapper<int> rw2(rw); //拷贝构造
    rw.get() = 25;
    assert(rw2.get() == 25);//rw2也是x的一个引用对象

    return 0;
}
View Code

相关文章:

  • 2022-12-23
  • 2021-11-14
  • 2021-11-01
  • 2021-08-13
  • 2021-07-21
  • 2021-11-06
  • 2021-05-18
  • 2022-01-11
猜你喜欢
  • 2021-06-04
  • 2021-06-02
  • 2021-10-10
  • 2021-07-24
  • 2021-11-01
相关资源
相似解决方案