diff options
Diffstat (limited to 'src/generic/problemresolver/incremental_expression.h')
-rw-r--r-- | src/generic/problemresolver/incremental_expression.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/generic/problemresolver/incremental_expression.h b/src/generic/problemresolver/incremental_expression.h index 0456b95e..5c997e74 100644 --- a/src/generic/problemresolver/incremental_expression.h +++ b/src/generic/problemresolver/incremental_expression.h @@ -100,6 +100,7 @@ public: } expression_weak_ref(T *_expr); + expression_weak_ref(const cwidget::util::ref_ptr<T> &_expr); expression_weak_ref(const expression_weak_ref &other); @@ -271,6 +272,13 @@ expression_weak_ref<T>::expression_weak_ref(T *_expr) } template<typename T> +expression_weak_ref<T>::expression_weak_ref(const cwidget::util::ref_ptr<T> &_expr) + : expression_weak_ref_generic(true), expr(_expr.unsafe_get_ref()) +{ + expr->add_weak_ref(this); +} + +template<typename T> expression_weak_ref<T>::expression_weak_ref(const expression_weak_ref<T> &other) : expression_weak_ref_generic(other.get_valid()), expr(other.expr) { |