Инициализировать boost:: shared_ptr до NULL - программирование
Подтвердить что ты не робот

Инициализировать boost:: shared_ptr до NULL

Можно ли инициализировать shared_ptr значением NULL?

boost::shared_ptr<Type> s_obj(NULL);

Если нет, то как?

4b9b3361

Ответ 1

Конструкция по умолчанию делает это для вас:

template<class T> class shared_ptr
{
public:

    explicit shared_ptr(T * p = 0): px(p)
    { 
        //Snip
    }

    //...

private:

    T * px;            // contained pointer
    count_type * pn;   // ptr to reference counter
};

Ответ 2

Это конструкция по умолчанию, т.е.:

boost::shared_ptr<Type> s_obj;

s_obj теперь содержит нулевой указатель и оценивает значение boolean false при проверке правды;