理解boost::bind的实参传递方式
来源:优易学  2010-1-15 9:21:26   【优易学:中国教育考试门户网】   资料下载   IT书店

  boost::bind在构造函数对象时,实参传递是采用传值方式的,中间会经过若干次的拷贝构造。对于不允许拷贝构造或拷贝构造性能开销较大的情形可以结合boost::ref增加一个wrapper层避免拷贝构造。下面是示例代码:

  #include <iostream>

  #include "boost/bind.hpp"

  #include "boost/ref.hpp"

  struct A

  {

  A(int aValue) : m_value(aValue)

  {

  std::cout << "A()" << std::endl;

  }

  A(const A& a)

  {

  std::cout << "A(const A&)" << std::endl;

  this->m_value = a.m_value;

  }

  int m_value;

  };

  void f(A a)

  {

  std::cout << "f(A)" << std::endl;

  }

  void g(A& a)

  {

  std::cout << "g(A&)" << std::endl;

  }

[1] [2] 下一页

责任编辑:cyth

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训