簡體   English   中英

帶參數的JavaScript和C ++回調函數

[英]JavaScript and C++ Callback Function with Arguments

如何在C ++中實現以下JavaScript回調實現? 以下內容摘自JavaScript代碼段。 我想實現相同的功能:

var playAdBreak = function(adbreak, callback) 
{
    var x;
    playSingle(x, function() { playAdBreak.call(this, adbreak, callback); });
};

var playSingle = function(abc, callback) 
{

};

如果您在C ++ 11環境下,可以使用lambda, std::function 下面的代碼沒有相同的功能,但它可以轉換成如下所示,除了:C ++ lambda不是閉包,對於一個函數沒有this

auto playSingle = [&](const T &abc, std::function<void()> callback) {

}

auto playAdBreak = [&](const Y &adbreak, std::function<void()) callback) {
  T x;
  playSingle(x, [=]() { playAdBreak(adbreak, callback); });
}

我能想到的最簡單的做法是

void callBackDefinition()
{
    printf("I was called");
}

void callBackExecutor(void (*callBack))
{
    callBack();
}

main()
{
    callBackExecutor(&callBackDefinition);
    return 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM