萌え。
#include <iostream> #include <string> #include <boost/bind.hpp> #include <boost/function.hpp> #include <boost/shared_ptr.hpp> using namespace std; int count(boost::shared_ptr<int> n) { (*n)++; return *n; } int main() { boost::shared_ptr<int> n(new int(0)); boost::function<int (void)> f = boost::bind(count, n); cout << f() << endl; cout << f() << endl; cout << f() << endl; cout << f() << endl; cout << f() << endl; return 0; }
nの生存期間が微妙だなー。
1
2
3
4
5
関数オブジェクトはnを参照するのかしらん。
いやいやいや、bindなんだからオブジェクトに保持してるか。