Проблема, с которой вы сталкиваетесь, заключается в том, что вы пытаетесь связать шаблонную функцию. В этом случае вам нужно указать тип шаблона метода, который вы вызываете для привязки.
Это происходит для метода A::bindA
. Ниже приведен фрагмент кода для main, который правильно компилируется с предоставленными классами.
Между прочим, в примере я использую boost :: function (дочерняя библиотека для привязки), чтобы указать, какой тип указателей на функцию используется. Я думаю, что это делает его намного более читабельным и очень рекомендую вам ознакомиться с ним, если вы собираетесь продолжать использовать bind.
#include "boost/bind.hpp"
#include "boost/function.hpp"
int main(int c, char** argv)
{
A a;
B b;
typedef boost::function<void(int, int)> BFunc;
typedef boost::function<void(BFunc)> AFunc;
BFunc bFunc( boost::bind(&B::bindB, b, _1, _2) );
AFunc aFunc( boost::bind(&A::bindA<BFunc>, a, make(bFunc)) );
bFunc(1,2);
}