Why does valgrind\'s DRD tool complaines \"Conflicting load by thread ... at size 4\": about such code:
void SomeFunction(const int& value)
{
boost::
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);