我不明白为什么以下代码中,lambda表达式和函数都未被识别为 std::invocable
兼容类型:
#include <concepts>
#include <iostream>
void f( std::invocable auto callback)
{
callback(47);
}
void function_callback(int i)
{
std::cout << i << std::endl;
}
auto lambda_callback = [](int i )
{
std::cout << i << std::endl;
};
int main(int)
{
f(&function_callback);
f(lambda_callback);
}
我正在使用启用了-std=c++2a
标志的GCC主干版本。