From 2101ef95569bfdde067aa9bfddc2305a48d5e321 Mon Sep 17 00:00:00 2001 From: Sergey Kovalevich Date: Fri, 18 Mar 2022 00:30:57 +0300 Subject: [PATCH] fixed issue #118 --- src/mfast/decimal_ref.h | 4 ++-- src/mfast/field_visitor.h | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/mfast/decimal_ref.h b/src/mfast/decimal_ref.h index 68d3971a..80268ed6 100644 --- a/src/mfast/decimal_ref.h +++ b/src/mfast/decimal_ref.h @@ -41,7 +41,7 @@ typedef boost::multiprecision::number decimal; inline decimal make_decimal(int64_t mantissa, int16_t exponent) { decimal r(mantissa); - r *= decimal_backend(1.0, exponent); + r *= decimal(decimal_backend(1.0, exponent)); return r; } @@ -119,7 +119,7 @@ class decimal_cref : public field_cref { decimal value() const { decimal r(mantissa()); - r *= decimal_backend(1.0, exponent()); + r *= decimal(decimal_backend(1.0, exponent())); return r; } diff --git a/src/mfast/field_visitor.h b/src/mfast/field_visitor.h index 3aa8a5de..771e08d2 100644 --- a/src/mfast/field_visitor.h +++ b/src/mfast/field_visitor.h @@ -44,7 +44,7 @@ template <> struct result_holder { template (nullptr)->visit(int32_cref()))> + std::declval()->visit(int32_cref()))> class field_accessor_adaptor : public field_instruction_visitor, private result_holder { FieldAccessor &accssor_; @@ -157,7 +157,7 @@ class field_accessor_adaptor : public field_instruction_visitor, template (nullptr)->visit(int32_mref()))> + std::declval()->visit(int32_mref()))> class field_mutator_adaptor : public field_instruction_visitor, private result_holder { allocator *alloc_; @@ -291,7 +291,7 @@ inline void field_mref::accept_mutator(FieldMutator &mutator) const { } template -inline decltype(static_cast(nullptr)->visit(int32_cref())) +inline decltype(std::declval()->visit(int32_cref())) apply_accessor(T &accessor, field_cref v) { detail::field_accessor_adaptor adaptor(accessor); v.instruction()->accept(adaptor, const_cast( @@ -300,7 +300,7 @@ apply_accessor(T &accessor, field_cref v) { } template -inline decltype(static_cast(nullptr)->visit(int32_mref())) +inline decltype(std::declval()->visit(int32_mref())) apply_mutator(T &mutator, field_mref v) { detail::field_mutator_adaptor adaptor(mutator, v.allocator()); v.instruction()->accept(adaptor, field_mref_core_access::storage_of(v));