Я получил некоторую проблему, и я не уверен, каков ответ.
В принципе - существует ли соглашение о том, какие значения использовать в трехсторонних типах данных? Погуглил, не похоже, что есть: Я видел:
.. среди прочего. Я бы предпочел использовать известное соглашение, если оно есть. В противном случае я придумаю :-) Вполне возможно, что нет правильного ответа, но просто подумал, что копну немного глубже ...
Править
Также нашел, что Microsoft похоже, что в недавнем коде используется : -1 = истина, 0 = ложь, 2 = неизвестно. Я предполагаю, что наличие 2 == unknown означает, что он устраняет двусмысленность при интерпретации + 1 / -1, если просто смотреть на необработанные значения в отладчике / дампе / памяти и т. Д. Как ни странно, этот параметр обращается именно к этому одна только причина (устраняет шанс забыть, какой вариант 1 означает «истинный»).