【发布时间】:2020-06-08 14:59:12
【问题描述】:
我不明白为什么在以下代码中 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 中继。
【问题讨论】:
-
如果您遇到构建错误,请始终将它们完整完整地复制粘贴到问题本身中。并在出现错误的行上添加 cmets。
标签: c++ c++20 c++-concepts invocable