c++ passing by const reference
c++, pass-by-const-reference
Solution
Here's the issue:
body.bp[0]->points.push_back(Point_id(p,i));
^^
Indirecting through a pointer removes any constness; rather, the constness of the result is dependent on the type of the pointer.
T *t; // pointer to T: can modify t and (*t)
const T *t; // pointer to const-T: can modify t but not (*t)
T *const t; // const-pointer to T: can modify (*t) but not t
const T *const t; // const-pointer to const-T: can't modify either t or (*t)
Problem
In the following program body cosists of a vector of pointers. Points is a struct of x,y,z coordinates and a point_id. I believe as body is passed by const reference, the following step should produce an error. BUt the program is running without any problem. Can you please explain me why is this. ``` void readOutFile(const Body& body, int n){ .... body.bp[0]->points.push_back(Point_id(p,i)); } ```