, shared_ptr, , .
, , , - . shared_ptr , , . , , , . , , -, ( shared_ptr, ). , , , shared_ptr .
, , , , ...
void a( C & val )
{
val.member = 10;
}
shared_ptr<X> v(new X());
a(*v);
if ( v ) a(*v);
class C
{
C() { a(x); }
X x;
};
, , a .
, ...
std::vector<int>::iterator it = v.begin();
a(*it);