Does boost::bind() copy parameters by reference or by value?

后端 未结 1 1738
无人及你
无人及你 2020-12-06 13:14

Why does valgrind\'s DRD tool complaines \"Conflicting load by thread ... at size 4\": about such code:

void SomeFunction(const int& value)
{
    boost::         


        
相关标签:
1条回答
  • 2020-12-06 14:00

    By value. 1

    But you can make it copy by ref instead:

    void SomeFunction(const int& value)
    {
        boost::bind(..., boost::ref(value)); 
        boost::bind(..., boost::cref(value)); // by const ref
    }
    

    1 http://www.boost.org/doc/libs/1_46_1/libs/bind/bind.html#Purpose

    a copy of the value of i is stored into the function object. boost::ref and boost::cref can be used to make the function object store a reference to an object, rather than a copy: int i = 5;

    bind(f, ref(i), _1);

    bind(f, cref(42), _1);

    0 讨论(0)
提交回复
热议问题