相关疑难解决方法(0)

如何在C++中实现通用回调

原谅我对这个基本问题的无知,但我已经习惯了使用Python,这种事情是微不足道的,我已经完全忘记了如何在C++中尝试这一点.

我希望能够将回调传递给在后台执行缓慢进程的函数,并在进程完成后稍后调用它.此回调可以是自由函数,静态函数或成员函数.我也希望能够在那里注入一些任意的参数用于上下文.(即,在某种程度上实现一个非常差的人的协程.)最重要的是,这个函数将始终采用std :: string,这是进程的输出.我不介意这个参数在最终回调参数列表中的位置是否固定.

我觉得答案将涉及boost :: bind和boost :: function但是我无法确定为了创建任意的callables而需要的精确调用(同时将它们调整为只需要一个字符串),将它们存储在后台进程中,并使用string参数正确调用callable.

c++ boost boost-bind

21
推荐指数
1
解决办法
1万
查看次数

相当于C++的window.setTimeout()

在javascript中有这个甜蜜,甜蜜的功能window.setTimeout( func, 1000 ) ;,它将在1000毫秒后异步调用func.

我想在C++中做类似的事情(没有多线程),所以我把一个示例循环放在一起,如:

    #include <stdio.h>

    struct Callback
    {
      // The _time_ this function will be executed.
      double execTime ;

      // The function to execute after execTime has passed
      void* func ;
    } ;

    // Sample function to execute
    void go()
    {
      puts( "GO" ) ;
    }

    // Global program-wide sense of time
    double time ;

    int main()
    {
      // start the timer
      time = 0 ;

      // Make a …

c++ function execution void-pointers

7
推荐指数
2
解决办法
1万
查看次数

如何使用C/C++创建回调函数

C\C++是否支持回调函数的机制?以及如何创建它?我写了几个代码,用C++创建回调函数但是失败了..

    #include<iostream>
    using namespace std;

    void callee()
    {
         printf("callee\n"); 
         printf("calleeeeeeeeee\n"); 
    }

    void callback(void* func)
    {
         printf("callback\n");     
    }

    int main()
    {
        void (*call)(void*);
        void (*call2)(void);
        call2 = &callee;
        call = &callback;
        call((void*)call2);    
        getchar();
        return 0;    
    }
Run Code Online (Sandbox Code Playgroud)

c++ callback

1
推荐指数
1
解决办法
7490
查看次数

标签 统计

c++ ×3

boost ×1

boost-bind ×1

callback ×1

execution ×1

function ×1

void-pointers ×1