簡體   English   中英

從具有一個已知輸入參數和一個未知輸入參數的函數構造std :: function

[英]Construct std::function from function with one known input argument and one unknown input argument

我有功能

int testFunctionA(double a,std::string b)
{
    return 0;
}

我想做一個std::function<int(std::string)>其中a是已知的, b是未知的。 所以像

std::function<int(std::string)> testFunctionB=testFunctionA(2.3,std::string b);

但是此語法不起作用。

正確的語法是什么?

您可以使用lambda:

auto func = [](std::string b){ return testFunction( 2.3, b ); };

注意: func將具有一些由編譯器生成的類型,但是它將隱式轉換為std::function< int( std::string ) >

您可以使用std::bind

std::function<int(std::string)> testFunc = 
         std::bind(&testFunction, 2.3, std::placeholders::_1);

或lambda(最好):

std::function<int(std::string)> testFunc = 
        [](std::string str){ return testFunction( 2.3, str ); };

暫無
暫無

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

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