Для чего используется Boost's shared_ptr (shared_ptr <Y> const & r, T * p)?
boost::shared_ptr
имеет необычный конструктор
template shared_ptr(shared_ptr const & r, T * p);
и я немного озадачен тем, для чего это было бы полезно. В основном это разделяет собственность сr
, но.get()
вернусь .p
не !r.get()
Это означает, что вы можете сделать что-то вроде этого:
int main() {
boost::shared_ptr x(new int);
boost::shared_ptr y(x, new int);
std::cout < x.get() < std::endl;
std::cout < y.get() < std::endl;
std::cout < x.use_count() < std::endl;
std::cout < y.use_count() < std::endl;
}