From ef07ed4ab8ee985a406eb26cf00f2ee5331ce0e5 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Thu, 16 Oct 2014 10:45:35 +0200 Subject: [PATCH] avoid unnecesary dynamic cast --- alib2data/src/std/visitor.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/alib2data/src/std/visitor.hpp b/alib2data/src/std/visitor.hpp index 64c7720032..4a471db892 100644 --- a/alib2data/src/std/visitor.hpp +++ b/alib2data/src/std/visitor.hpp @@ -65,7 +65,7 @@ struct const_promoting_helper<Tested, Other...> { typename std::enable_if< std::is_constructible<Desired, Tested>::value >::type* = nullptr > inline static bool tryPromote(void* userData, const Desired& first, const Base& second, const TargetVisitor& visitor) { if(dynamic_cast<const Tested*>(&second)) { - visitor.Visit(userData, first, Desired(dynamic_cast<const Tested&>(second))); + visitor.Visit(userData, first, Desired(static_cast<const Tested&>(second))); return true; } else { return const_promoting_helper<Other...>::tryPromote(userData, first, second, visitor); @@ -133,7 +133,7 @@ public: template<typename R> void Visit1(void* userData, const T& first, const R& second) const { if(dynamic_cast<const T*>(&second)) { - this->Visit(userData, first, dynamic_cast<const T&>(second)); + this->Visit(userData, first, static_cast<const T&>(second)); } else { throw std::logic_error("Same visitor: Visited types are different."); } @@ -153,7 +153,7 @@ public: template<typename R> void Visit1(void* userData, const T& first, const R& second) const { if(dynamic_cast<const T*>(&second)) { - this->Visit(userData, first, dynamic_cast<const T&>(second)); + this->Visit(userData, first, static_cast<const T&>(second)); } else { throw std::logic_error("Same visitor: Visited types are different."); } -- GitLab