我在查找typedef reinterpret_cast
的语法时遇到了一些麻烦。
有人可以帮忙吗?
修改:
我想做什么。我总是犹豫不决,因为人们似乎总是陷入其他所有事情,除了问题实际上是什么,因为你可以看到我的上一篇文章导致一大堆什么都没有。
我试图想出一种为指针分配mem地址0的方法。我使用它作为安全捕获等。我认为typedef cast会对此有所帮助。请不要建议我使用NULL。
由于
答案 0 :(得分:5)
答案 1 :(得分:1)
你的意思是?
sometype *foobar = 0;
使用空值分配指针是您必须在C / C ++中手动执行的操作。如果您正在寻找一种方法将auto-init设置为null,请查看指针包装类,如autoptr或smartptr类。
答案 2 :(得分:0)
reinterpret_cast
不是类型,因此您无法typedef
它。您可以将其打包在template
中,但是:
template<typename T> T* improved_null()
{
return reinterpret_cast<T*>(0);
}
int* foo = improved_null<int>();
在这种情况下你实际上并不需要reinterpret_cast
(如果需要,函数的返回值被强制转换为正确的类型):
template<typename T> T* improved_null() { return 0 }
当然,如果您想要改进NULL
,可以考虑nullptr
。