我可以通过构建名为pointer_traits<Ptr>::element_type
的类来实现may_element_type
。如果Ptr
符合要求,则may_element_type
会有一个名为element_type
的类型成员,否则may_element_type
将没有任何内容。然后,pointer_traits
可以继承may_element_type
。
但是pointer_traits::rebind
是一个模板。如果我想做一些条件判断,pointer_traits
无法继承像may_rebind
这样的类。
我也可以使用template <typename T> rebind = may_rebind<T, Ptr>::type
,但may_rebind
中可能没有任何内容。
所以我的问题是有更好的方法来实现pointer_traits::rebind
吗?