v0.5.0
Main changes:
- Added explicit casting constructors to
observer_ptr
. - Added
static_pointer_cast
,const_pointer_cast
, anddynamic_pointer_cast
for all pointer types.
Small changes and bugfixes:
- Fixed explicit casting constructors for owner pointers leaking the control block when given a null pointer
- Fixed explicit casting constructor for sealed pointers forcing a
T*
as input, rather preserving the user's pointer type throughout. In theory this could have brokenenable_observer_from_this
in some edge cases (T*
not inheriting fromenable_observer_from_this
, but user-suppliedV*
does). However in practice, the raw pointer must come from a sealed pointer, and will therefore already have its control block setup correctly. So this has no observable consequence.