Add TriStateBool constructor taking a boolean

And move the constructor taking an int to private.
This commit is contained in:
Chocobo1 2019-09-23 11:38:40 +08:00
parent eebb2186c7
commit ed62854af7
No known key found for this signature in database
GPG key ID: 210D9C873253A68C

View file

@ -38,9 +38,9 @@ public:
constexpr TriStateBool() = default; constexpr TriStateBool() = default;
constexpr TriStateBool(const TriStateBool &other) = default; constexpr TriStateBool(const TriStateBool &other) = default;
explicit constexpr TriStateBool(int value) explicit constexpr TriStateBool(const bool boolean)
: m_value(value < 0 ? -1 : (value > 0 ? 1 : 0))
{ {
*this = boolean ? True : False;
} }
explicit constexpr operator int() const explicit constexpr operator int() const
@ -56,6 +56,11 @@ public:
} }
private: private:
explicit constexpr TriStateBool(const int value)
: m_value((value < 0) ? -1 : ((value > 0) ? 1 : 0))
{
}
signed char m_value = -1; // Undefined by default signed char m_value = -1; // Undefined by default
}; };