2017-03-13 1 views
1

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?

Répondre