gpt4 book ai didi

c++ - 简单模块系统(回调)

转载 作者:行者123 更新时间:2023-11-28 00:55:04 28 4
gpt4 key购买 nike

我正在尝试制作一个简单的模块引擎,但我真的不知道从哪里开始,我想创建这样的东西:

int awesomefunction() {
// do something here
execute_awesomefunction_callbacks_here();
// some more stuff
}

*execute_awesomefunction_callbacks_here();* 将执行 std::vector 中的所有函数

关于如何实现这一点有什么想法吗?或者有更好的方法吗?

最佳答案

您可以使用 std::functionstd::vector 来实现它。唯一的限制是所有函数对象必须具有兼容的返回类型和参数类型。

class Publisher {

public:
void registerSubscriber(std::function<int(int, double)> callback) {
callbacks_.push_back(callback);
int executeAwesomeFunction() const {
// loop over vector calling each function object.
}
private:
std::vector<std::function<double(int,double)>> callbacks_;
}

这需要 C++11 支持,但您可以使用 boost::function 实现相同的目的

关于c++ - 简单模块系统(回调),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11917666/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com