Я пытаюсь реализовать тип Tribool, используя http://www.boost.org/doc/libs/1_41_0/doc/html/tribool.html в качестве ссылки.
Я использую структуру, поскольку она является примитивным типом и не должна расширяться. Я знаю, что существует три типа трибунов - True, False и Unknown, и конструктор по умолчанию должен предоставлять False Tribool. У меня вопрос, какой тип данных я устанавливаю True, False и Unknown? Прямо сейчас у меня есть:
struct Tribool
{
//True, False, and Unknown public constants
public static readonly Tribool TRUE, FALSE, UNKNOWN;
//Constructors
public Tribool()
{
Tribool = FALSE; //use ValueType instead?
}
но я не уверен, что это правильно, поскольку похоже, что я просто устанавливаю Tribool на другой Tribool. Должен ли я использовать ValueType вместо этого? Оно появилось, когда я печатал в VS, и звучит разумно, но я не смог найти много информации об этом от Google.
Кроме того, Tribool должен быть в состоянии работать с обычными bools, что означает, что «true» и «false» должны быть перегружены. Требует ли это перегрузки оператора? Или это просто метод, который возвращает bool?
Заранее спасибо!
Редактировать: Извините, я должен был упомянуть, что это было для назначения. Так что я не могу использовать bools, хотя это гораздо практичнее, как отмечали многие из вас.