#include <vector>
struct foo {
std::vector<int> p;
};
void someFunction(const foo& theFoo)
{
theFoo.p[0] = 10; // error.
}
int main()
{
foo aFoo;
aFoo.p.resize(1);
someFunction(aFoo);
}
I2luY2x1ZGUgPHZlY3Rvcj4KICAgIAogICAgc3RydWN0IGZvbyB7CiAgICAgIHN0ZDo6dmVjdG9yPGludD4gcDsKICAgIH07CiAgICAKICAgIHZvaWQgc29tZUZ1bmN0aW9uKGNvbnN0IGZvbyYgdGhlRm9vKQogICAgewogICAgCXRoZUZvby5wWzBdID0gMTA7ICAvLyBlcnJvci4KICAgIH0KICAgIAogICAgaW50IG1haW4oKQogICAgewogICAgICAgZm9vIGFGb287CiAgICAgICBhRm9vLnAucmVzaXplKDEpOwogICAgICAgc29tZUZ1bmN0aW9uKGFGb28pOwogICAgfQ==
prog.cpp: In function 'void someFunction(const foo&)':
prog.cpp:9:18: error: assignment of read-only location 'theFoo.foo::p.std::vector<_Tp, _Alloc>::operator[]<int, std::allocator<int> >(0u)'
theFoo.p[0] = 10; // error.
^