From f8593a09278d7fdeb778cbfef90415dd8e6b806b Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Fri, 26 Jun 2009 13:37:00 +0000 Subject: [PATCH] Add type_match function to see if two types are the same --- dispatchkit/bootstrap.hpp | 6 ++++++ dispatchkit/type_info.hpp | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/dispatchkit/bootstrap.hpp b/dispatchkit/bootstrap.hpp index 396d031a..27e6c558 100644 --- a/dispatchkit/bootstrap.hpp +++ b/dispatchkit/bootstrap.hpp @@ -431,6 +431,11 @@ namespace dispatchkit register_function(s, &multiply, "*"); } + static bool type_match(Boxed_Value l, Boxed_Value r) + { + return l.get_type_info() == r.get_type_info(); + } + static Boxed_Value bind_function(const std::vector ¶ms) { if (params.size() < 2) @@ -483,6 +488,7 @@ namespace dispatchkit s.register_function(boost::shared_ptr(new Dynamic_Proxy_Function(boost::bind(&bind_function, _1))), "bind"); + register_function(s, &type_match, "type_match"); register_function(s, &bool_and, "&&"); register_function(s, &bool_or, "||"); } diff --git a/dispatchkit/type_info.hpp b/dispatchkit/type_info.hpp index e0651d0e..c3c5ef07 100644 --- a/dispatchkit/type_info.hpp +++ b/dispatchkit/type_info.hpp @@ -41,6 +41,11 @@ namespace dispatchkit return *this; } + bool operator==(const Type_Info &ti) const + { + return ti.m_type_info == m_type_info; + } + bool m_is_const; bool m_is_reference; bool m_is_pointer;