Cómo prevenir la conversión implícita de char array a bool
struct Foo {
void setBar(bool bar_) { bar = bar_; }
bool bar;
};
int main() {
Foo f;
f.setBar("true");
}
El código anterior se compila correctamente debido a la conversión de tipo, aunque se pase una matriz de caracteres donde sebool
se espera.
¿Es posible hacer que este código falle en la compilación? (Se prefiere la solución C ++ 03, ya que el compilador en mi lugar de trabajo es antiguo).
He analizado las siguientes preguntas relacionadas sobre StackOverflow, pero no solucionan el problema.Previniendo la conversión implícita en C ++, ¿Por qué el compilador elige bool sobre cadena para typecast implícito de L ""?