Vaut-il mieux utiliser static const
vars que #define
préprocesseur? Ou peut-être que cela dépend du contexte?
Quels sont les avantages / inconvénients de chaque méthode?
#define
ou static const
(pour les chaînes) est motivée par l' aspect d' initialisation (cela n'a pas été mentionné dans les réponses ci-dessous): si la constante est utilisée uniquement dans une unité de compilation particulière, alors j'y vais static const
, sinon j'utilise #define
- éviter le fiasco d' initialisation d'ordre statique isocpp.org/wiki/faq/ctors#static-init-order
const
, constexpr
ou enum
ou toute variation fonctionne dans votre cas, alors préférez-le à#define