Il functor deve ricevere una std:

air, quindi:
codice:
void operator()(std:

air<int, CCartesianPointIfc*>& p) {
p.first <-- è la chiave
p.second <-- è il puntatore.
}
ma come faccio ad es a costruire un function object di confronto tipo il less per intenderci con solo un parametro?
ho provato cosi:
codice:
struct giugio
{
int id;
string str;
string str2;
};
struct oper
{
bool operator()(std::pair<int, giugio>& p, std::pair<int, giugio>& p1) const
{
return p.second.id < p1.second.id;
}
};
.
.
typedef map<int,giugio,oper> intV;
intV v, v2, v3Union;
.
.
ma ottengo qest' errore:
c:\Programmi\Microsoft Visual Studio .NET 2003\Vc7\include\map(144): error C2664: 'bool oper:
perator ()(std:
air<_Ty1,_Ty2> &,std:
air<_Ty1,_Ty2> &) const' : cannot convert parameter 1 from 'const std::map<_Kty,_Ty,_Pr>::key_type' to 'std:
air<_Ty1,_Ty2> &'
with
[
_Ty1=int,
_Ty2=giugio
]
and
[
_Kty=int,
_Ty=giugio,
_Pr=oper
]
and
[
_Ty1=int,
_Ty2=giugio
]