小编Eti*_*xpp的帖子

C++中的Lambda用于向其他函数提供函数

我想打电话

template <typename FUNC>
int execute ( FUNC )
{
    int a { 5 };
    int b { 8 };
    return FUNC ( a, b );
}
Run Code Online (Sandbox Code Playgroud)

使用以下行:

std::cout << execute ( [] ( int a, int b ){ return a + b;  }) << std::endl;
Run Code Online (Sandbox Code Playgroud)

出现以下错误:

error C2661: 'main::<lambda_5994edd6ba73caf12c83e036d510d0d8>::<lambda_5994edd6ba73caf12c83e036d510d0d8>': Keine überladene Funktion akzeptiert 2 Argumente
Run Code Online (Sandbox Code Playgroud)

所以问题是我做错了什么?错误是德语,但它基本上只是说该函数不需要2个参数,它显然应该这样做

c++ c++11

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

C++不需要5/9,似乎对它进行了类型化

为什么

 float bla = ( 5/9 )* (100 - 32) result in 0 * 100 -> 0 ?
Run Code Online (Sandbox Code Playgroud)

float bla= 5*(100- 32) / 9;
Run Code Online (Sandbox Code Playgroud)

锻炼?他似乎将5/9视为一个整数,并使其为0,但结果变量是浮点数,因此编译器应该知道他可以使用5/9或?

c++

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

标签 统计

c++ ×2

c++11 ×1