Soit :
fichier1.hxx :
fichier2.cpp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 namespace { int maVariable; }
Bon, fichier2.cpp voit maVariable définie dans fichier1.cxx.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 #include "fichier1.hxx" namespace { int maFonction() { maVariable = 5; return maVariable; } } int main() { std::cout << maFonction() << std::endl; }
Pourquoi ?
Je croyais que les espaces anonymes n'étaient visibles que dans les fichiers où ils étaient définis ?
Vous allez me dire que puisque c'est inclus, c'est comme si c'était le même fichier.
C'est aussi simple que cela ?
La FAQ dit :
"Son utilité est de permettre la déclaration d'une variable/fonction/type dont la portée doit être celle du fichier."
Du fichier source, ou du fichier compilé ?
Partager