Bonjour,

J'ai créé plusieurs répertoirs maths, draw ... où chaque fichier est définit par un espace de nom.

par exemple, ./src/maths/espace.h :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
#ifndef ESPACE_H
#define ESPACE_H
 
#include "../defines.h"
...
 
namespace maths {
 
class Espace
{...}
}
J'ai créé un fichier entête général pour définir des macros :

fichier ./src/defines.h :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
#ifndef DEFINES_H
#define DEFINES_H
 
#define QSPEspace QSharedPointer<maths::Espace>
#define QSPVImage QSharedPointer< std::vector<cv::Mat> >
 
#endif // DEFINES_H
Mon soucis avec ce fichier, c'est que la macro QSPEspace ne va pas passer à la compilation des fichiers situés dans le répertoire maths.

Mais si j'écris du coup :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
#ifndef DEFINES_H
#define DEFINES_H
 
#define QSPEspace QSharedPointer<Espace>
#define QSPVImage QSharedPointer< std::vector<cv::Mat> >
 
#endif // DEFINES_H
Cette fois ci si je veux que ça compile je suis obligé d'avoir un 'using namespace maths;' dans mon fichier ./src/draw/draw.cpp .

J'aimerais avoir quelque chose de propre, qu'est ce qui serait le mieux de faire pour mes macros QSPEspace QSPVimage ?

Merci d'avance, :-)