Наличие непустого boost::function
как сделать его пустым (чтобы при звонке .empty()
на это вы получите true
)?
Просто назначьте это NULL
или построенный по умолчанию boost::function
(которые по умолчанию пусты):
#include <boost/function.hpp>
#include <iostream>
int foo(int) { return 42; }
int main()
{
boost::function<int(int)> f = foo;
std::cout << f.empty();
f = NULL;
std::cout << f.empty();
f = boost::function<int(int)>();
std::cout << f.empty();
}
Выход: 011
f.clear () добьется цели. Используя пример выше
#include <boost/function.hpp>
#include <iostream>
int foo(int) { return 42; }
int main()
{
boost::function<int(int)> f = foo;
std::cout << f.empty();
f.clear();
std::cout << f.empty();
f = boost::function<int(int)>();
std::cout << f.empty();
}
даст тот же результат.