Boost :: tribool: strano comportamento, o bug?
Domanda
boost :: tribool e sono rimasto sorpreso dal seguente comportamento.
{
using namespace boost;
boost::tribool t(indeterminate);
assert(t==indeterminate); // This assertion fails!
}
Tuttavia, se faccio questo, l'asserzione passa.
assert(indeterminate(t));
Non ci sono avvisi del compilatore o errori in entrambi i casi. Qualcuno ha una buona spiegazione del perché questo dovrebbe essere ??
Soluzione
Credo che la risposta sia nella documentazione :
il risultato del confronto tra due valori indeterminati è indeterminato (non è vero) - non sappiamo quali sono i valori, quindi non possiamo dire che sono uguali;
indeterminato funzione può essere utilizzato per verificare se un tribool è in uno stato indeterminato.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow