espace de nom (namespace)
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:
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:
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:
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, :-)