请考虑以下代码:
#include <functional>
int foo(){return 0;}
int main ()
{
std::function<void()> fun = foo;
}
使用clang / libc ++编译时,会报告以下错误:
error: no viable conversion from 'int ()' to 'std::function<void ()>'
std::function<void()> fun = foo;
然而,g ++(4.8和5.1)完全没问题。那么,g ++是否可以放弃返回类型?请注意,它似乎与C ++库实现有关,而不是编译器。