From 4540bed06c80fcacd73bd8f34873198632396ae4 Mon Sep 17 00:00:00 2001 From: Houtan Bastani <houtan@dynare.org> Date: Tue, 26 Nov 2019 10:40:51 +0100 Subject: [PATCH] macro processor: missed if statement with initializer for C++17 --- src/macro/Expressions.cc | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/macro/Expressions.cc b/src/macro/Expressions.cc index ec54db44..59b4ca85 100644 --- a/src/macro/Expressions.cc +++ b/src/macro/Expressions.cc @@ -41,13 +41,11 @@ Bool::is_equal(const BaseTypePtr &btp) const BoolPtr Bool::logical_and(const BaseTypePtr &btp) const { - auto btp2 = dynamic_pointer_cast<Bool>(btp); - if (btp2) + if (auto btp2 = dynamic_pointer_cast<Bool>(btp); btp2) return make_shared<Bool>(value && *btp2, env); - auto btp3 = dynamic_pointer_cast<Real>(btp); - if (btp3) - return make_shared<Bool>(value && *btp3, env); + if (auto btp2 = dynamic_pointer_cast<Real>(btp); btp2) + return make_shared<Bool>(value && *btp2, env); throw StackTrace("Type mismatch for operands of && operator"); } -- GitLab