Нет жизнеспособного преобразования из 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.

Ответы на вопрос(0)

Ваш ответ на вопрос