Soit :

fichier1.hxx :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
namespace
{
	int maVariable;
}
fichier2.cpp :
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;
}
Bon, fichier2.cpp voit maVariable définie dans fichier1.cxx.
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 di
t :
"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é ?