Копирование boost::function также копирует закрытие?

Допустим, у меня есть такая функция:

void someFunction(const ExpensiveObjectToCopy&);

Если я сделаю boost::function out if it, то эта функция будет хранить свою клонированную копию объекта в своем закрытии:

boost::function<void()> f = boost::bind(someFunction, x);  // <-- f saves a copy of x

Теперь, если я начну передавать f по кругу, будет ли конструктор копирования boost::function copy каждый раз заново копировать этот объект, или каждая функция имеет одно и то же закрытие? (т.е. вот так)

boost::function<void()> f2 = f;
callSomeFunction(f);
etc.
5
задан Chris 31 December 2011 в 14:37
поделиться