Ich schreibe Code, der meine Caching-Ausnahme erfordert.Implizite Konvertierung in bool für std :: exeption_ptr
Bitte beachten Sie
int main()
{
std::exception_ptr ex;
bool b = ex;
}
Dies lässt sich nicht kompilieren aufgrund ex
nicht auf einen Typ bool
umwandelbar. Meine aktuelle Problemumgehung ist
bool b = !!ex;
oder sogar
bool b = ex ? true : false;
Der erste Weg ist hässlich, die zweite eine Tautologie sicher zu schreiben. Ich fange an, den Compiler zu beschuldigen (MSVC2015). Zwei Dinge:
Gibt es eine bessere Art und Weise der Überprüfung, ob
ex
hat eine Ausnahme gesetzt?(Verbunden) Muss ich in irgendeiner Weise
ex
initialisieren?
@Downvoter: Es tut mir leid, wenn diese Frage Sie beleidigt. Wenn es einen Weg gibt, wie ich dich beschwichtigen kann, dann teile bitte deine Weisheit. –
Haben Sie die Dokumentation gelesen? http://en.cppreference.com/w/cpp/error/exception_ptr – NathanOliver
Ja habe ich.Aber ich verstehe nicht, warum '' 'zusammen mit der Bedingung funktioniert. Was vermisse ich? –