использование констант в заголовочном файле с соответствием ODR
Смотря наДругой вопрос Я понял, что не могу использовать объекты или функции из анонимного пространства имен через файл заголовка, поскольку это приведет к нарушениям ODR в определениях классов или встроенных функциях. Если это так, то можно ли использовать именованныеconst
или жеconstexpr
static
объекты вinline
функции или в классах безопасно? Например, еслиCONSTANT
был внутриnamespace
ниже было бы небезопасно, но можно ли использовать константу со статической связью?
// some header file to be included by multiple .cpp files
static const/*expr*/ int CONSTANT = 2;
inline int f() {
return CONSTANT;
}
class Cls {
int mem = CONSTANT;
};