De l'FAQ:membre google-test et constexpr statique
Si votre classe a un membre de données statiques:
// foo.h
class Foo {
...
static const int kBar = 100;
};
Vous devez également définir en dehors du corps de classe foo.cc:
const int Foo::kBar; // No initializer here.
Sinon, votre code est invalide C++ et peut se casser en Unexpect façons ed. En particulier, l'utiliser dans les assertions de comparaison de tests Google (EXPECT_EQ, etc.) générera une erreur de lien de "référence non définie".
Si au lieu de static const
j'utilise static constexpr
, devrais-je encore avoir la définition dans foo.cc ou pas?