gpt4 book ai didi

c++ - C++ 中的 Lambda 将一个函数赋予另一个函数

转载 作者:太空宇宙 更新时间:2023-11-03 10:28:15 25 4
gpt4 key购买 nike

我正在打电话

template <typename FUNC>
int execute ( FUNC )
{
int a { 5 };
int b { 8 };
return FUNC ( a, b );
}

使用以下行:

std::cout << execute ( [] ( int a, int b ){ return a + b;  }) << std::endl;

错误如下:

error C2661: 'main::<lambda_5994edd6ba73caf12c83e036d510d0d8>::<lambda_5994edd6ba73caf12c83e036d510d0d8>': Keine überladene Funktion akzeptiert 2 Argumente

所以问题是我做错了什么?错误是德语的,但它基本上只是说该函数没有采用它显然应该采用的 2 个参数

最佳答案

不,这不是您应该调用该函数的方式。您没有指定参数的名称。您尝试做的是将该类型用作函数。

更正后的模板函数是:

template <typename FUNC>
int execute ( FUNC f )
{
int a { 5 };
int b { 8 };
return f( a, b );
}

关于c++ - C++ 中的 Lambda 将一个函数赋予另一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26427710/

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