Skip to content

Commit 2101ef9

Browse files
committed
fixed issue #118
1 parent 99e0daa commit 2101ef9

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

src/mfast/decimal_ref.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ typedef boost::multiprecision::number<decimal_backend> decimal;
4141

4242
inline decimal make_decimal(int64_t mantissa, int16_t exponent) {
4343
decimal r(mantissa);
44-
r *= decimal_backend(1.0, exponent);
44+
r *= decimal(decimal_backend(1.0, exponent));
4545
return r;
4646
}
4747

@@ -119,7 +119,7 @@ class decimal_cref : public field_cref {
119119

120120
decimal value() const {
121121
decimal r(mantissa());
122-
r *= decimal_backend(1.0, exponent());
122+
r *= decimal(decimal_backend(1.0, exponent()));
123123
return r;
124124
}
125125

src/mfast/field_visitor.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ template <> struct result_holder<void> {
4444

4545
template <class FieldAccessor,
4646
class Result = decltype(
47-
static_cast<FieldAccessor *>(nullptr)->visit(int32_cref()))>
47+
std::declval<FieldAccessor *>()->visit(int32_cref()))>
4848
class field_accessor_adaptor : public field_instruction_visitor,
4949
private result_holder<Result> {
5050
FieldAccessor &accssor_;
@@ -157,7 +157,7 @@ class field_accessor_adaptor : public field_instruction_visitor,
157157

158158
template <class FieldMutator,
159159
class Result = decltype(
160-
static_cast<FieldMutator *>(nullptr)->visit(int32_mref()))>
160+
std::declval<FieldMutator *>()->visit(int32_mref()))>
161161
class field_mutator_adaptor : public field_instruction_visitor,
162162
private result_holder<Result> {
163163
allocator *alloc_;
@@ -291,7 +291,7 @@ inline void field_mref::accept_mutator(FieldMutator &mutator) const {
291291
}
292292

293293
template <typename T>
294-
inline decltype(static_cast<T *>(nullptr)->visit(int32_cref()))
294+
inline decltype(std::declval<T *>()->visit(int32_cref()))
295295
apply_accessor(T &accessor, field_cref v) {
296296
detail::field_accessor_adaptor<T> adaptor(accessor);
297297
v.instruction()->accept(adaptor, const_cast<mfast::value_storage *>(
@@ -300,7 +300,7 @@ apply_accessor(T &accessor, field_cref v) {
300300
}
301301

302302
template <typename T>
303-
inline decltype(static_cast<T *>(nullptr)->visit(int32_mref()))
303+
inline decltype(std::declval<T *>()->visit(int32_mref()))
304304
apply_mutator(T &mutator, field_mref v) {
305305
detail::field_mutator_adaptor<T> adaptor(mutator, v.allocator());
306306
v.instruction()->accept(adaptor, field_mref_core_access::storage_of(v));

0 commit comments

Comments
 (0)