应该使用什么优雅的方法回调设计?

ere*_*eOn 4 c++ methods design-patterns callback c++11

我很惊讶这个问题之前没有问过SO(好吧,至少我找不到它).

你有没有在C++中设计一个方法回调模式(类似于类方法的"指针"),如果是这样,你是怎么做到的?

我知道一个方法只是一个常规函数,带有一些隐藏this参数作为上下文,我有一个非常简单的设计.然而,由于事情往往比它们看起来更复杂,我想知道我们的C++ 专家如何实现这一点,最好是以优雅和标准的方式.

欢迎所有建议!

Dav*_*eas 9

boost :: function用于单回调,boost :: signalboost :: signals2当可以注册多个回调时,使用boost :: bind来绑定成员方法(或以不同方式调整签名).

如果您可以访问具有C++ 0x/C++ 11支持的编译器,则它可能具有std :: function和std :: bind,它们是boost :: function和boost :: bind的新标准版本

  • 它还不能带来世界和平.开发中有一个库可以执行此操作,但开发人员无法就语法达成一致. (7认同)
  • @Phil - 不,他们刚刚开始争夺支撑风格 (2认同)