大佬教程收集整理的这篇文章主要介绍了c – 取消引用void指针时的reinterpret_cast行为,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
#include <iostream> int main() { int i{ 5 }; void* v = &i; std::cout << reinterpret_cast<int&>(*v) << std::endl; }
Live demo.GCC和VC都因我预期的错误而失败,抱怨代码试图在reinterpret_cast中取消引用void *.所以我决定在标准中查看这个.来自N3797,§5.2.10/ 11 [exPR.reinterpret.cast]
在这种情况下,T1为void,T2为int,并且可以使用reinterpret_cast将void *转换为int *.因此满足所有要求.
根据说明,reinterpret_cast< int&>(* v)与* reinterpret_cast< int *>(&(* v))具有相同的效果,根据我的推算,它与* reinterpret_cast< int相同* GT;(v)中. 那么这是一个海湾合作委员会和VC的错误,还是铿锵有力,我错误地解释了这个?
以上是大佬教程为你收集整理的c – 取消引用void指针时的reinterpret_cast行为全部内容,希望文章能够帮你解决c – 取消引用void指针时的reinterpret_cast行为所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。