当推断的返回类型为 std::nullptr_t 时,为什么允许第二次赋值?对于函数指针,这是禁止的。
为什么第二个 lambda 不运行?
#include <cstdio>
#include <functional>
int main()
{
std::function<void* ()> f;
f = []() -> void* {
printf ("runs\n");
return nullptr;
};
f();
f = []() {
printf ("doesn't run\n");
return nullptr; // -> std::nullptr_t
};
f();
return 0;
}