devxlogo

Strong Types

Strong Types

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.

devx-admin

Share the Post: