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