utilizando constantes en el archivo de encabezado con cumplimiento de ODR
Mirando aotra pregunta Me di cuenta de que no puedo usar objetos o funciones de un espacio de nombres anónimo a través de un archivo de encabezado, ya que causará violaciones de ODR en las definiciones de clase o funciones en línea. Si este es el caso, entonces es posible usarconst
oconstexpr
static
objetos eninline
funciones o en clases de forma segura? Por ejemplo, siCONSTANT
estaba dentro denamespace
debajo sería inseguro, pero ¿está bien usar una constante con enlace estático?
// 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;
};