Commit 70d2e57b by hbruintjes

Cast to derived holder using container type when using std::enable_shared_from_this.

Allows const types to be used by shared_ptr
parent 3eeea6fa
......@@ -887,7 +887,7 @@ private:
template <typename T>
static void init_holder_helper(instance_type *inst, const holder_type * /* unused */, const std::enable_shared_from_this<T> * /* dummy */) {
try {
new (&inst->holder) holder_type(std::static_pointer_cast<type>(inst->value->shared_from_this()));
new (&inst->holder) holder_type(std::static_pointer_cast<typename holder_type::element_type>(inst->value->shared_from_this()));
} catch (const std::bad_weak_ptr &) {
new (&inst->holder) holder_type(inst->value);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment