这段代码中的回调发生在哪里?
Where is thee callback happening in this code?
class Add
{
Add(){cout<<"ctor";}
void operator()(int a ,int b){return a+b;}
}
int main()
{
Add(3,4);
}
Add是函子。函子可以在回调机制中发挥作用?那么这是在哪里发生的呢?
函子可以帮助实现回调机制,对吧?
是的。你可以编写一个函数模板,它使用函子来执行用户定义的操作,作为它正在做的事情的一部分;例如:
template <typename Fn>
void do_stuff(Fn f, int a, int b) {
int c = f(a, b);
do_something(c);
}
,然后这样注入你的操作:
do_stuff(Add(), 3, 4);
一个特殊的用法是std::sort
算法,它可以使用用户提供的函子来比较不支持普通比较操作符的类型。
那么它发生在哪里??
它不是;你的代码无法编译。在确定返回值之后(因为它返回的值不是void
),您可以使用
Add()(3,4);
但是这不是特别有用。
相关文章:
- 在简单示例中,Python3 + ctypes 回调会导致内存泄漏
- 用于在回调中调用解析器的设计模式
- pcap_handler回调仅在使用 NPCAP v0.9991 时包含空数据包
- 在C++中实现回调
- C 回调函数在对象 pascal 上崩溃
- Steam 回调在 Linux / GCC 编译期间触发警告
- 德尔福在回调中出现 GUI 问题
- C++ - 如何在不静态的情况下将回调绑定到类方法?
- 我想制作设置鼠标回调函数,以便在仍然按下鼠标左键时连续传递坐标
- 我可以使用谷歌 v8 在回调函数中获取 JavaScript 函数C++源文本吗?
- 如果事件在仍在执行时再次设置,RegisterWaitForSingleObject 是否会并行运行回调?
- 在定时器回调函数中使用 Sleep() 会导致C++出现问题吗?
- C++在赋值或回调函数时重载模板
- libevent是否允许在不同的线程中运行timer/io的回调
- 在回调中使用函数时,C++未知重写说明符
- 获取要在C++中动态调用的回调函数的地址
- 在类中设置 PubSubClient API 的回调函数
- 在通过 P/Invoke 获取的 C++ 结构上设置 C# 回调
- 等待句柄/事件异步或回调在同一线程内
- 这段代码中的回调发生在哪里?