boost::cfunction update