Boost :: tribool: странное поведение или ошибка? - PullRequest
6 голосов
/ 16 августа 2010

Я изучаю boost :: tribool и был удивлен следующим поведением.

{
using namespace boost;

boost::tribool t(indeterminate);

assert(t==indeterminate);  // This assertion fails!
} 

Однако, если я это сделаю, утверждение пройдет.

assert(indeterminate(t));

Нет предупреждений компилятора или ошибок в любом случае. У кого-нибудь есть хорошее объяснение, почему это должно быть ??

1 Ответ

11 голосов
/ 16 августа 2010

Я думаю, что ответ находится в документации :

результат сравнения двух неопределенных значений является неопределенным (не истинным) - мы не знаем, что это за значения, поэтому мыне может сказать, что они равны;

функция неопределенная может использоваться для проверки, находится ли трибоул в неопределенном состоянии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...