Quick A: If you need a compile time constant, you cannot use extern
.
Recently on SO:
'Constexpr' vs 'extern const'. Which has priority?
Using
extern const
in the header file only tells the compiler that the variable exists and that it is not modifiable. It doesn't tell the compiler its value which means it's not a compile-time constant anymore. If it's not a compile-time constant then it can't be used for e.g.case
or as an array size.As said by M.M in the comment, either use
const int MAX_NUMBER_OF_ROWS= 99;or
constexpr int MAX_NUMBER_OF_ROWS= 99;directly in the header file and it will be a compile-time constant in all translation units that include the header file.
Add a Comment
Comments are closed.