Earl Purple Guest
|
Posted: Fri Jan 27, 2006 11:23 am Post subject: Re: Cast vector<foo*> to vector<const foo*>? |
|
|
Andrew Koenig wrote:
| Quote: | Care to edify me why?
At first blush, they seem quite similar.
Here is one reason:
void append(vector<const foo*>& v, const foo* p)
{
v.push_back(p);
}
const foo f;
const foo* p = &f;
vector<foo*> v;
append(v, p);
By casting v to vector<const foo*>&, you have managed to put a const foo*
value into a vector<foo*>. Now, you can execute
v.last()->munge();
where munge is a member of class foo that modifies its object. By doing so,
you have modified a const foo object.
|
Something you couldn't do with my adapter as you cannot modify the
vector either thus you can't push anything onto it.
|
|