1

VS2017 is giving me the error:

1

It is related to const keyword. But my class method do not change object variables, so it is constant. m_points and m_pointsIndex are

std::vector< std::shared_ptr < DB::Point > > m_points;
std::map<size_t, size_t> m_pointsIndex;

And method is

AcGePoint3d Database::getPoint(size_t index) const
{
    AcGePoint3d point;
    point.x = m_points[m_pointsIndex[index]]->x();
    point.y = m_points[m_pointsIndex[index]]->y();
    point.z = m_points[m_pointsIndex[index]]->z();

    return point;
}

All my data are stored in SQLite database. All objects reference each other using ID as FOREIGN KEY.
In the application I store all my points in std::vector for easy looping. And bind ID from SQLite to vector index with std::map.

In getPoint(size_t index) method, index are point ID in SQLite database. I convert database id to vector index with m_pointsIndex[index] and find point in m_points using it. From point I get x, y and z coordinates and create new point to return. So I don't modify any member variables. So why method can't be constant?

Matthieu Brucher
  • 21,634
  • 7
  • 38
  • 62
Donatas
  • 45
  • 4

0 Answers0