Jak zapobiec niejawnej konwersji z tablicy char na bool

struct Foo {
  void setBar(bool bar_) { bar = bar_; }
  bool bar;
};

int main() {
  Foo f;
  f.setBar("true");
}

Powyższy kod kompiluje się pomyślnie z powodu konwersji typu, nawet jeśli tablica znaków jest przekazywana w miejscu abool jest oczekiwany.

Czy jest możliwe, aby ten kod nie powiódł się kompilacją? (Preferowane rozwiązanie C ++ 03, ponieważ kompilator w moim miejscu pracy jest starożytny.)

Sprawdziłem następujące pytania pokrewne na temat StackOverflow, ale nie rozwiązują one całkowicie tego problemu.Zapobieganie niejawnej konwersji w C ++, Dlaczego kompilator wybiera bool over string dla niejawnego typecastu L ""?

questionAnswers(3)

yourAnswerToTheQuestion