Boost :: tribool: comportamiento extraño, o un error?
Pregunta
impulso :: tribool y fue sorprendido por el siguiente comportamiento.
{
using namespace boost;
boost::tribool t(indeterminate);
assert(t==indeterminate); // This assertion fails!
}
Sin embargo, si hago esto, la aserción pasa.
assert(indeterminate(t));
No hay advertencias del compilador o errores en cualquiera de los casos. Alguien tiene una buena explicación de por qué esto debería ser ??
Solución
Creo que la respuesta está en el href="http://www.boost.org/doc/libs/1_43_0/doc/html/boost/logic/operator___id623512.html" rel="noreferrer"> documentación :
el resultado de comparar dos valores indeterminados es indeterminada (no es cierto) - no se sabe cuáles son los valores, por lo que no podemos decir que son iguales;
indeterminada función de lata ser utilizado para probar si un tribool está en un estado indeterminado.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow