error C2662 avec une struct
Bonjour a tous,
Je rencontre actuellement le problème suivant à la compilation :
Citation:
error C2662: 'toto::zoneindex::replace' : impossible de convertir un pointeur 'this' de 'const toto::zoneindex' en 'toto::zoneindex &'
1> La conversion perd les qualificateurs
Apparemment je tente de modifier une variable const mais je ne vois pas où elle est const en fait.
Merci par avance de m'éclaircir.
Mon code :
Code:
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
}
}
}; |