Можно ли инициализировать shared_ptr
с NULL
значением?Инициализировать boost :: shared_ptr до NULL
boost::shared_ptr<Type> s_obj(NULL);
Если нет, то как?
Можно ли инициализировать shared_ptr
с NULL
значением?Инициализировать boost :: shared_ptr до NULL
boost::shared_ptr<Type> s_obj(NULL);
Если нет, то как?
конструкция по умолчанию делает это для вас:
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
};
Это строительство по умолчанию, т.е .:
boost::shared_ptr<Type> s_obj;
s_obj
теперь держит пустой указатель и оценивает в логическое значение FALSE при проверке истинности;
Разве это не стандартная конструкция? –
также nullptr имеет смысл, чем NULL, если C++ 11 – paulm
Если мой 'shared_ptr' уже указал на объект, когда я назначил его с помощью' NULL' (или '0'), является ли число ref для более раннего объекта уменьшенным? –