:Was ist eine 'gültige' Std :: Funktion? Hier
http://en.cppreference.com/w/cpp/utility/functional/function
operator bool
beschrieben: "überprüft, ob das gespeicherte aufrufbare Objekt gültig".
Vermutlich ein Standard konstruiert std::function
ist nicht gültig, aber ist dies der einzige Fall?
Wie überprüft es auch, ob es gültig ist?
Ist der Fall, in dem operator()
std::bad_function_call
genau den Fall wirft, wo das Objekt nicht gültig ist?
OK, so die Überprüfung auf Gültigkeit ist nur die Typüberprüfung und das Aufrufen einer default konstruierten 'std :: function' ist genau der Fall, wo' std :: bad_function_call' ausgelöst wird, yup? – dpj
@ user710408: Ich weiß nicht, was Sie meinen, "die Prüfung auf Gültigkeit ist nur die Typüberprüfung". Die Gültigkeit (die Annahme der Definition "hat ein Ziel") wird zur Laufzeit festgelegt, die Typüberprüfung findet zur Kompilierzeit statt. Und ein ungültiger Funktionsaufruf tritt auf, wenn die Funktion nicht gültig ist (kein Ziel hat), sei es von der Standardkonstruk- tion oder explizit mit "nullptr". – GManNickG
Ich glaube nicht, dass ich wusste, was ich auch meinte! Danke :) – dpj