View source code
Display the source code in std/typecons.d from which this page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone.

Struct std.typecons.Ternary

Ternary type with three truth values:

struct Ternary ;

Also known as trinary, trivalent, or trilean.

Constructors

NameDescription
this (b) Construct and assign from a bool, receiving no for false and yes for true.
this (b) Construct a ternary value from another ternary value

Methods

NameDescription
opAssign (b) Construct and assign from a bool, receiving no for false and yes for true.
opBinary (rhs)
Truth table for logical operations
a b class="pln">TILDEa a | b a & b a ^ b
no no yes no no no
no yes yes no yes
no unknown unknown no unknown
yes no no yes no yes
yes yes yes yes no
yes unknown yes unknown unknown
unknown no unknown unknown no unknown
unknown yes yes unknown unknown
unknown unknown unknown unknown unknown
opUnary ()
Truth table for logical operations
a b class="pln">TILDEa a | b a & b a ^ b
no no yes no no no
no yes yes no yes
no unknown unknown no unknown
yes no no yes no yes
yes yes yes yes no
yes unknown yes unknown unknown
unknown no unknown unknown no unknown
unknown yes yes unknown unknown
unknown unknown unknown unknown unknown

See Also

Three Valued Logic on Wikipedia

Example

Ternary a;
writeln(a); // Ternary.unknown

writeln(~Ternary.yes); // Ternary.no
writeln(~Ternary.no); // Ternary.yes
writeln(~Ternary.unknown); // Ternary.unknown

Authors

Andrei Alexandrescu, Bartosz Milewski, Don Clugston, Shin Fujishiro, Kenji Hara

License

Boost License 1.0.