explicit operator bool von std::istream::sentry
-
hallo leute,
ich hab zwei sentry object:
std::istream::sentry ok1(my_istream1); std::istream::sentry *ok2 = new std::istream::sentry(my_istream2);warum funktioniert das:
auto get_sentry1(void) const -> bool { return ok1; }aber das nicht:
auto get_sentry2(void) const -> bool { return *ok2; }?
bekomm den fehler:error C2440: "return": "std::basic_istream<char,std::char_traits<char>>::sentry" kann nicht in "bool" konvertiert werdenirgendwie steh ich grad auf der leitung
danke
Meep Meep
-
Hallo,
der Konvertierungsoperator von
std::istream::sentryzuboolistexplicit(Quelle); du brauchst also einen expliziten Cast.
Dassget_sentry1so kompiliert, liegt wahrscheinlich daran, dass MSVC hierbei nicht standardkonform ist.LG