Verhindert die implizite Konvertierung von char in bool
struct Foo {
void setBar(bool bar_) { bar = bar_; }
bool bar;
};
int main() {
Foo f;
f.setBar("true");
}
Der obige Code wird aufgrund der Typkonvertierung erfolgreich kompiliert, obwohl ein char-Array übergeben wird, in dem einbool
Es wird erwartet.
Kann dieser Code dazu führen, dass die Kompilierung fehlschlägt? (C ++ 03-Lösung bevorzugt, da der Compiler an meinem Arbeitsplatz uralt ist.)
Ich habe mir die folgenden verwandten Fragen zu StackOverflow angesehen, aber sie gehen dieses Problem nicht ganz an.Implizite Konvertierung in C ++ verhindern, Warum wählt der Compiler Bool anstelle von String für implizite Typumwandlung von L ""?