How C++ defines operators for enumerated types
This article introduces the knowledge of "how C++ defines operators for enumerated types". Many people will encounter this dilemma in the operation of actual cases, so let the editor lead you to learn how to deal with these situations. I hope you can read it carefully and be able to achieve something!
Enum.4: define operators for enumerated types for safe and simple use
Reason (reason)
Easy to use with few mistakes.
Example (sample)
Enum Day {mon, tue, wed, thu, fri, sat, sun}
Day& operator++ (Day& d)
{
Return d = (d = = Day::sun)? Day::mon: static_cast (static_cast (d) + 1)
}
Day today = Day::sat
Day tomorrow = + + today
The use of static_cast is not good, but:
Day& operator++ (Day& d)
{
Return d = (d = = Day::sun)? Day::mon: Day {+ + d}; / / error
}
Is a very deep recursion, and if you don't use cast, it would be too cumbersome to use switch statements that cover all cases.
Enforcement (implementation recommendations)
The tag is converted repeatedly to an expression of an enumerated type.
That's all for how C++ defines operators for enumerated types. Thank you for reading. If you want to know more about the industry, you can follow the website, the editor will output more high-quality practical articles for you!