class A {
public:
templete< typename T>
void set(T* fnClass, void(T:: *fn)(unsigned int, float, void*), unsigned int _i, float _f, void* p) {
fn = std::tr1::bind(fn, fnClass, _1, _2, _3);
i = _i;
f = _f;
p = _p;
}
std::tr1::function<void (unsigned int, float, void*)> fn;
unsigned int i;
float f;
void* p;
}
class B {
B(){
a.set(this, &B::Callback, 0, 0, 0);
}
void Callback(unsigned int i, float f, void* p) { }
private:
A a;
}