Que ce soit une fonction ou variable statique, le problème est le même si l'instantiation n'advient pas.
L'initialisation statique est un fait acquis déjà, pas la peine de t'en préoccuper.
...
Type: Messages; Utilisateur: k1000
Que ce soit une fonction ou variable statique, le problème est le même si l'instantiation n'advient pas.
L'initialisation statique est un fait acquis déjà, pas la peine de t'en préoccuper.
...
Le problème ne vient pas de l'initialisation. La définition donne une valeur connue à la compilation, et le standard garantit que l'initialisation statique advient avant toute initialisation...
J'y avais pensé à l'origine, mais l'approche de la variable statique permet de séparer la compilation, économiser du temps compilo, et faire en sorte que b.cpp (code client) n'ait pas à connaître les...
Il est parfaitement légal d'écrire :
// a.hpp
struct A {
static const int x;
};
// a.cpp
#include "a.hpp"
const int A::x = /* machin */;
Merci pour les conseils, mais tu t'attaches à l'encapsulation, qui n'est pas du tout le problème ici.
La question est en fait : étant donné un type T fixe, quel code faut-il écrire dans a.cpp...
Désolé, pour le static, c'est juste une erreur de copier-coller.
De même, le "template<...> unsigned A<T>:: x" devrait se trouver dans a.tpp.
Je connais les risques associés aux globales ; le...
Bonjour,
J'ai une classe template A qui contient un champ de données membre statique x. Y-a-t'il un moyen de s'assurer que A<T>:: x va être réellement instancié (ie. symbole créé dans le fichier...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.