diff --git a/src/formula/variant.cpp b/src/formula/variant.cpp index a6a5211052f2..1db98586e188 100644 --- a/src/formula/variant.cpp +++ b/src/formula/variant.cpp @@ -162,12 +162,6 @@ variant::variant(double n, variant::DECIMAL_VARIANT_TYPE) assert(value_.get()); } -variant::variant(const_formula_callable_ptr callable) - : value_(std::make_shared(callable)) -{ - assert(value_.get()); -} - variant::variant(const std::vector& vec) : value_((std::make_shared(vec))) { diff --git a/src/formula/variant.hpp b/src/formula/variant.hpp index a4297e411c24..72b89a8619d5 100644 --- a/src/formula/variant.hpp +++ b/src/formula/variant.hpp @@ -34,11 +34,17 @@ class variant explicit variant(int n); variant(int n, DECIMAL_VARIANT_TYPE /*type*/); variant(double n, DECIMAL_VARIANT_TYPE /*type*/); - variant(const_formula_callable_ptr callable); explicit variant(const std::vector& array); explicit variant(const std::string& str); explicit variant(const std::map& map); + template + variant(std::shared_ptr callable) + : value_(std::make_shared(callable)) + { + assert(value_.get()); + } + variant& operator=(const variant& v); variant operator[](size_t n) const;