M>Если рассматривать более общую проблему, то можно также привести следующий пример:
M>void f(int = 0);
M>std::function<void()> fn = std::bind(&f, 0);
я правильно понял, что проблема тут в том, что "0" в последней строке невозможно синхронизировать автоматически с "0" в первой строке? т.е. если "0" в первой строке изменят, то "0" во второй могут забыть изменить, и получить ошибку
вообще пожалуста поподробней, чего не хватает
скажем, boost::overload дает возможность задать functions.set(&f) (
https://svn.boost.org/svn/boost/sandbox/overload/trunk/libs/overload/docs/tutorial.qbk ); чего здесь не хватает, по-моему, это опять автоматической синхронизации строк
functions.set( тут-указан-конкретный-вариант-из-перегрузок-функции-f );
с набором этих самых перегруженных вариантов функции f
вот примерно так, поподробней пожалуста
M>void f();
void f(int);
std::function<void()> fn = static_cast<void(*)()>(&f);
мне не ясна не только цель, но и что тут происходить -- какая из f кастится?