Bonjour,

Je pense que mon erreur est basique mais je n'arrive pas à trouver l'explication.

Voici une classe: Entry

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
16
17
18
19
20
21
class LIBAS_DECL Entry {
public:
        typedef std::string ObjectContext;
        struct Prefix {
 
                const ObjectContext     *component; 
                uint32_t                thrid;        
                uint32_t                reqid;
                Prefix(const ObjectContext *c) : component(c), thrid(0), reqid(0) { }
 
        };
 
public:
        Level level;
        Prefix prefix;
        class Writer &writer;
 
public:
 
        Entry(Prefix p, Writer &w);
	}
Mon but est d'initialiser un objet Entry.

Voici se que je fais:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
const std::string tmp2;
 
Entry::Prefix  pfx(&tmp2);
 
OSWriter       MyWriter(lvl ,fp);
 
Entry          MyEntry(pfx, &MyWriter );
Lors de la compilation, j'ai une erreur qui, d'après moi, annonce que je passe la structure Prefix (pfx) en tant que référence:
error: no matching function for call to `STLRT::Log::Entry::Entry(STLRT::Log::Entry::Prefix&, STLRT::Log::OSWriter*)'
et le compilateur me propose ceci:
note: candidates are: STLRT::Log::Entry::Entry(STLRT::Log::Entry::Prefix, STLRT::Log::Writer&)
Je ne peux pas toucher à la classe Entry.

Merci de votre aide, d'une piste, un cours ou tout autre apport.

G.