Re: VC6 -> VC2005 conversion problem
 
Philippe wrote:
Hello,
I'm converting my project from VC++6 to VC++2005.
among many compilation errors now solved, that one is stucking me :
I have that template :
<snip>
the faulty code is :
void CPGLLine2DLOD::PlotLineStripGfx(gfxinterface::CGfxInterface& gfx)
{
    const LODLine::KeyContainer& kc= m_hull.GetKeys();
    LODLine::KeyContainer::const_iterator it;
    UINT i;
    double* pX=new double[kc.size()];
    double* pY=new double[kc.size()];
    for (it=kc.begin(), i=0; it!=kc.end();it++, i++)
    {
             // line (174) in error
        pX[i] = (*it)->x;
             // idem
        pY[i] = (*it)->y;
    }
}
I get that compilation error :
c:\program files\microsoft visual studio 
2005\vc\pgl\pglline2dlod.cpp(174) : error C2819: type 'std::vector<_Ty>' 
does not have an overloaded member 'operator ->'
with
[
_Ty=hull::TLineApproximator<double>::SPoint
]
did you intend to use '.' instead?
c:\program files\microsoft visual studio 
2005\vc\pgl\pglline2dlod.cpp(174) : error C2039: 'x' : is not a member 
of 'std::vector<_Ty>'
with
[
_Ty=hull::TLineApproximator<double>::SPoint
]
Strange, it compiled perfectly under VC6 and it's now faulty under VC2005
What norm change is responsible with that error and how to correct it ?
Philippe:
Well, it looks wrong to me. Don't you mean
pX[i] = it->x;
pY[i] = it->y;
Are you sure this compiled and worked in VC6?
-- 
David Wilkinson
Visual C++ MVP