¿Cómo puedo evitar la compilación de la última línea de este código?Conversión de impulso :: opcional a bool
#include <boost/optional.hpp>
int main()
{
typedef boost::optional<int> int_opt;
int_opt opt = 0;
bool x = opt; // <- I do not want this to compile
}
La última línea no examina opt
's contenían valor int, pero en su lugar se compila como un tipo de conversión a bool, y no parece ser lo que el usuario pretende.
La fraseología bool segura parece ser relevante aquí?
¿Qué quieres decir con algo así? Describe en inglés lo que quieres. El código obviamente no describe lo que quieres. Entonces, ¿cómo deberíamos saber? – Oswald
no se puede, 'boost :: optional' implementa' operator! 'Y esta es la razón por la cual la última línea arriba compila. Ni siquiera puede derivar de esto para ocultar ese operador; necesita reparar su código. – Nim