Question:
How do you make the compiler generate an error when a variable is set to a value outide the range of the constrained type? For example;
strong x; //strong is a type that //must have values range //between 1 thru 10 x=11 //I want a compiler error //here! Out of range!
Answer:
The easiest and most efficient way to achieve the desired compile-time checking is using enum types.The only snag is that you have to define symbolic names rather than numerals:
enum one_to_ten{ one = 1, two, three, ... ten};one_to_ten x = ten; //finex = 10; //error, must use an enumerator
There is also a template-based solution but it’s much more complicated and has a performance penalty that may be unacceptable so the most reasonable solution is still enum types.