Bonjour a tous,
Je rencontre actuellement le problème suivant à la compilation :
Apparemment je tente de modifier une variable const mais je ne vois pas où elle est const en fait.error C2662: 'toto::zoneindex::replace' : impossible de convertir un pointeur 'this' de 'const toto::zoneindex' en 'toto::zoneindex &'
1> La conversion perd les qualificateurs
Merci par avance de m'éclaircir.
Mon code :
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 class toto { public: struct zoneindex { int zone1; int zone2; zoneindex(int z1, int z2) { assert(z1 != z2); this->zone1 = z1; this->zone2 = z2; } void replace( int oldv, int newv) { if(this->zone1==oldv) this->zone1=newv; if(this->zone2==oldv) this->zone2=newv; } }; struct zonevalue { int vertex; double z; }; typedef std::map<zoneindex, zonevalue> myzmap; void f1( ) { myzmap zmap; this->f2(zmap); } void f2( myzmap & zmap ) { int i,j; BOOST_FOREACH(myzmap::value_type & v, zmap) { v.first.replace(i, j); //error C2662 } } };
Partager