É melhor usar static const
vars do que #define
pré-processador? Ou talvez dependa do contexto?
Quais são as vantagens / desvantagens de cada método?
#define
ou static const
(para seqüências de caracteres) é orientada pelo aspecto de inicialização (não foi mencionado pelas respostas abaixo): se a constante for usada apenas em uma unidade de compilação específica, eu continuarei com static const
, caso contrário, uso #define
- evite o fiasco de inicialização de ordem estática isocpp.org/wiki/faq/ctors#static-init-order
const
, constexpr
ou enum
qualquer variação funcionar no seu caso, prefira#define