Deduzir o argumento de modelo da assinatura de chamada std :: function
Considere esta função de modelo:
template<typename ReturnT>
ReturnT foo(const std::function<ReturnT ()>& fun)
{
return fun();
}
Por que não é possível que o compilador deduzaReturnT
da assinatura de chamada passada?
bool bar() { /* ... */ }
foo<bool>(bar); // works
foo(bar); // error: no matching function call