Bonjour !

J'ai un petit souci

Je vous explique.

J'ai une structure ( singleton ) inclut dans un namespace avec un pointeur définit en externe.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Design.hpp
 
namespace Design
{
 
     struct Data : public Singleton< Data >
     {
          // données
     } ;
 
 
extern Data * TheData ;
 
} // namespace Design
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Design.cpp
 
#include "Design.hpp"
 
Design::Data * Design::TheData = nullptr ;
 
// etc
Dans une fonction en dehors du namespace "Design" j'utilise le pointeur "TheData" .

Je voulais savoir si au lieu de taper :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
using namespace Design ;
 
TheData->Truc ;
ou

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Design::TheData->Truc ;
je peux utiliser un typedef ?

J'ai évidemment essayé mais le compilateur ( Visual C++ 2008 )dit qu'il y a

une erreur de syntaxe( error C2649 ).

Voilà ce que j'ai essayé

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
1 : typedef Design::TheData data ;
 
2 : typedef Design::TheData * data ;
 
3 : typedef Design::Data * Design::TheData data ;
 
4 : typedef struct Design::TheData data ;
 
5 : typedef struct Design::TheData * data ;
 
// etc
En gros, je ne trouve pas la syntaxe correcte.

Je sais que ce que je désire faire est discutable, les premières solution sont suffisament correctes.

Mais je suis curieux .

Quelqu'un pourrait-il m'aider ?

Merci !