Нет жизнеспособного преобразования из std :: function в bool
C ++ 11std::function
должен реализоватьoperator bool() const
Так почему же Clang говорит мне, что нет жизнеспособного преобразования?
#include <functional>
#include <cstdio>
inline double the_answer()
{ return 42.0; }
int main()
{
std::function<double()> f;
bool yes = (f = the_answer);
if (yes) printf("The answer is %.2f\n",f());
}
Ошибка компиляции:
function_bool.cpp:12:7: error: no viable conversion from 'std::function<double ()>' to 'bool'
bool yes = (f = the_answer);
^ ~~~~~~~~~~~~~~~~
1 error generated.
РЕДАКТИРОВАТЬ Я не виделexplicit
ключевое слово .. нет неявного преобразования тогда, я думаю, мне придется использоватьstatic_cast
.