小编use*_*127的帖子

为什么不起作用阻止不同返回类型的施工?

std::function 允许你这样做:

std::function<void()> = []()->int{return 42;};
Run Code Online (Sandbox Code Playgroud)

但不是这个:

std::function<void()> = [](int i)->int{return 42;};
Run Code Online (Sandbox Code Playgroud)

大概是因为返回类型不是函数签名的一部分.但是std::function是一个类类型,它被赋予一个返回类型,并且知道它构造的函数对象的返回类型.所以这里可能存在编译器错误.

为什么没有编译器错误?

c++

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

标签 统计

c++ ×1