Когда следует использовать constexpr
и когда использовать extern const
?«Constexpr» против «extern const». Что имеет приоритет?
У меня есть ситуация, как:
в заголовке (.h):
extern const int MAX_NUMBER_OF_ROWS;
в источнике (.cpp):
const int MAX_NUMBER_OF_ROWS= 99;
файлы (заголовок и источник) содержат только такие определения и declarat ионов.
ли Рекоммендуемый использовать только в constexpr
в файле заголовка и избавиться от исходного файла, как здесь ?:
// this is in the header file. There is no cpp file any more.
constexpr int MAX_NUMBER_OF_ROWS= 99;
они ортогональны - вы всегда могли использовать 'const int MAX_NUMBER_OF_ROWS = 99;' в заголовке; и тогда вопрос будет заключаться в том, следует ли изменить 'const' на' constexpr'. Имея его так, как вы это делаете, обычно делается только в том случае, если значение не известно во время включения заголовка. –
ОК, и если он находится в заголовке, как вы сказали, может ли он быть 'constexpr', правильно? – mtb