C++ macro-defined constants as argument checked at compile time What I mean is normally solved with using an enum: