私はJavaScriptのような機能をc ++(ブーストなし)で作成したいsetTimeout
と思っています。setInterval
私が達成したいこと:サブクラス化されたメンバー変数を繰り返しまたは単一の遅延後に呼び出すことができる基本クラス。
私はupdate
すでに機能を持っており、経過時間機能があります。また、メンバー関数ポインターを基本クラスに渡し、次を使用してその関数をトリガーする方法も見つけました。
class BaseClass {
public:
template <class object>
void triggerNow(object *obj, void (object::*func)()) {
((obj)->*(func))();
}
}
class SubClass : public BaseClass {
public:
void update() {
triggerNow(this, &SubClass::worked)
}
void worked() {
cout << "worked!";
}
}
私が現在直面している問題は、ベクター (または他のコンテナー)object *obj
に保存する方法です。void (object::*func)()
私はちょうどテンプレートを考え出しているだけです...
triggerNow
テンプレート化された 2 つのパラメータをベクトルに格納するにはどうすればよいですか? これが分かれば、setTimeout と setInterval を作成できます。