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 ""?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage