由于我无法正确设计我的课程,我达到了需要这样的地步:
struct A
{
A( function< void(string&) cb > ): callback(cb) {}
function< void(string&) > callback;
template <std::size_t T>
void func( string& str) { ... }
}
int main(){
vector<A> items = {
A( bind( &A::func<1>, items[0], _1) ),
A( bind( &A::func<2>, items[1], _1) ),
...
}
这可以安全使用吗?如果没有,是否有替代方案?