Ternary

Ternary type with three truth values:

  • Ternary.yes for true
  • Ternary.no for false
  • Ternary.unknown as an unknown state

Also known as trinary, trivalent, or trilean.

Constructors

this
this(bool b)

Construct and assign from a bool, receiving no for false and yes for true.

this
this(Ternary b)

Construct a ternary value from another ternary value

Members

Functions

opAssign
void opAssign(bool b)

Construct and assign from a bool, receiving no for false and yes for true.

opBinary
Ternary opBinary(Ternary rhs)
Ternary opBinary(bool rhs)
Truth table for logical operations,
ab$(TILDE)aa | ba & ba ^ b
nonoyesnonono
noyesyesnoyes
nounknownunknownnounknown
yesnonoyesnoyes
yesyesyesyesno
yesunknownyesunknownunknown
unknownnounknownunknownnounknown
unknownyesyesunknownunknown
unknownunknownunknownunknownunknown
opUnary
Ternary opUnary()
Truth table for logical operations,
ab$(TILDE)aa | ba & ba ^ b
nonoyesnonono
noyesyesnoyes
nounknownunknownnounknown
yesnonoyesnoyes
yesyesyesyesno
yesunknownyesunknownunknown
unknownnounknownunknownnounknown
unknownyesyesunknownunknown
unknownunknownunknownunknownunknown

Manifest constants

no
enum no;
unknown
enum unknown;
yes
enum yes;

The possible states of the Ternary

Examples

Ternary a;
assert(a == Ternary.unknown);

assert(~Ternary.yes == Ternary.no);
assert(~Ternary.no == Ternary.yes);
assert(~Ternary.unknown == Ternary.unknown);

See Also

Meta

Suggestion Box / Bug Report