From fb576cb5cbc399bdc537b75343080de9a1a7907f Mon Sep 17 00:00:00 2001 From: Xin Pan Date: Tue, 6 Nov 2018 10:50:04 +0800 Subject: [PATCH] allow to compare type test=develop --- paddle/fluid/framework/ir/node.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/paddle/fluid/framework/ir/node.h b/paddle/fluid/framework/ir/node.h index 1b7364858..b8764e256 100644 --- a/paddle/fluid/framework/ir/node.h +++ b/paddle/fluid/framework/ir/node.h @@ -15,7 +15,10 @@ limitations under the License. */ #pragma once #include +#include +#include #include + #include "paddle/fluid/framework/op_desc.h" #include "paddle/fluid/framework/var_desc.h" #include "paddle/fluid/platform/macros.h" @@ -57,6 +60,7 @@ class Node { } wrapper_ = wrapper; wrapper_deleter_ = [wrapper]() { delete wrapper; }; + wrapper_type_ = std::type_index(typeid(T)); } template @@ -64,6 +68,11 @@ class Node { return *boost::any_cast(wrapper_); } + template + bool IsWrappedBy() { + return std::type_index(typeid(T)) == wrapper_type_; + } + // Please don't use this API! int id() const { return id_; } @@ -118,6 +127,7 @@ class Node { boost::any wrapper_; std::function wrapper_deleter_; + std::type_index wrapper_type_ = std::type_index(typeid(void)); DISABLE_COPY_AND_ASSIGN(Node); }; -- GitLab