提交 fb576cb5 编写于 作者: X Xin Pan

allow to compare type

test=develop
上级 ead94bfc
...@@ -15,7 +15,10 @@ limitations under the License. */ ...@@ -15,7 +15,10 @@ limitations under the License. */
#pragma once #pragma once
#include <string> #include <string>
#include <typeindex>
#include <typeinfo>
#include <vector> #include <vector>
#include "paddle/fluid/framework/op_desc.h" #include "paddle/fluid/framework/op_desc.h"
#include "paddle/fluid/framework/var_desc.h" #include "paddle/fluid/framework/var_desc.h"
#include "paddle/fluid/platform/macros.h" #include "paddle/fluid/platform/macros.h"
...@@ -57,6 +60,7 @@ class Node { ...@@ -57,6 +60,7 @@ class Node {
} }
wrapper_ = wrapper; wrapper_ = wrapper;
wrapper_deleter_ = [wrapper]() { delete wrapper; }; wrapper_deleter_ = [wrapper]() { delete wrapper; };
wrapper_type_ = std::type_index(typeid(T));
} }
template <typename T> template <typename T>
...@@ -64,6 +68,11 @@ class Node { ...@@ -64,6 +68,11 @@ class Node {
return *boost::any_cast<T*>(wrapper_); return *boost::any_cast<T*>(wrapper_);
} }
template <typename T>
bool IsWrappedBy() {
return std::type_index(typeid(T)) == wrapper_type_;
}
// Please don't use this API! // Please don't use this API!
int id() const { return id_; } int id() const { return id_; }
...@@ -118,6 +127,7 @@ class Node { ...@@ -118,6 +127,7 @@ class Node {
boost::any wrapper_; boost::any wrapper_;
std::function<void(void)> wrapper_deleter_; std::function<void(void)> wrapper_deleter_;
std::type_index wrapper_type_ = std::type_index(typeid(void));
DISABLE_COPY_AND_ASSIGN(Node); DISABLE_COPY_AND_ASSIGN(Node);
}; };
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册