boost:shared_ptr
перегрузки operator*
:
boost::shared_ptr< T > t_ptr(new T());
*t_ptr; // this expression is a T object
Чтобы получить указатель на t
, вы можете использовать функцию get
или взять адрес *t_ptr
:
&*t_ptr; // this expression is a T*
Первый метод (с использованием get
), вероятно, лучше и имеет меньше накладных расходов, но работает только с shared_ptr
s (или указателями с совместимым API), а не с указателями другого типа.