【发布时间】:2012-08-31 17:22:19
【问题描述】:
我有一个启用(通过 std::enable_if)的模板函数,它的参数是原始指针,或者具有 std::iterator 类别,或者是 std::nullptr_t。在该函数中,原始指针(数据成员)被设置为等于参数,如下所示:
template<class T> void myFunction(T it)
{
_ptr = &*it;
}
&* 适用于指针和迭代器...但对于 std::nullptr_t 则失败。是否有任何解决方案可以避免编写 2 个不同的函数?
谢谢。
【问题讨论】:
-
如果
*it的类型已经重载了operator&,即使&*it也将不起作用。
标签: c++ pointers reference nullptr