我希望有一个函数fn
,它包含指向const
和非const
对象的指针集。我正在写一个模板来做这件事。
template<typename T1,
typename T2,
std::enable_if<std::is_same<T1,NodeType *>::value && std::is_same<T2,EdgeType *>::value, std::nullptr_t>::type = nullptr>
static void fn(unordered_set<T1> &nodeSet, unordered_set<T2>& edgeSet);
在上面的示例中,我希望能够传递unordered_set<const NodeType *>
以及unordered_set<NodeType *>
(与EdgeType
相似)。但是,我收到一个错误:
‘nullptr_type’ not supported by simple_type_specifier
。有人可以帮忙吗?
答案 0 :(得分:1)
除了您遗失的某些std::remove_const
之外,要实现此目的,您应使用std::remove_pointer
和template<typename T1, typename T2,
typename std::enable_if<
std::is_same<typename std::remove_const<typename std::remove_pointer<T1>::type>::type, NodeType>::value &&
std::is_same<typename std::remove_const<typename std::remove_pointer<T2>::type>::type, EdgeType>::value,
typename std::nullptr_t>::type = nullptr>
static void fn(std::unordered_set<T1> &nodeSet, std::unordered_set<T2>& edgeSet);
类型特征:
default_wait_time