vector<Object>
Objectに関数がある場合、 std関数/テンプレートのみを使用してrun()
を呼び出す方法はありますか?run()
for_each
これは静的関数ではないことに注意しrun()
てください。実際には、参照されているオブジェクトを変換する必要があります(もちろん、私の小さな例ではそうではありません)。
私はboost::lambda
方法を知っています
class Object
{
public:
int run(){/* change object state */}
};
vector<Object> v(10);
for_each(v.begin(), v.end(), bind(&Object::run, _1));
しかし、それが標準的な(Cxx11以外の)方法であるかどうかは気になります。