Des*_*tor 4 c++ cpu-registers storage-class-specifier c++17
我正在读这篇文章,它说该register关键字很可能会从下一个C++标准中删除.它还说register2011年已被弃用.那么,register存储类说明符有什么问题?
我认为现代编译器非常智能,它们隐式优化常用变量以实现速度(快速访问)并将它们放入CPU寄存器中.
但是,C++专家也说不要或从不使用register.因此,register关键字的问题是什么?
你几乎回答了自己的问题:
我认为现代编译器非常智能,因此它们隐式优化了常用变量的速度(快速访问)并将它们放入CPU寄存器中.
正是点优化器现在如此擅长寄存器分配,以至于程序员通过register关键字强制执行其意愿的任何尝试都可能导致悲观,因此编译器会忽略它.请记住,这register绝不是一个绑定要求,总是只是对编译器的提示.既然他们理所当然地嘲笑这些提示,那么这个关键字就过时了,毫无用处.
因此,直接回答你的问题"它有什么问题:"它不再用于任何目的,因为它曾经拥有的唯一一个("暗示编译器把这个东西放在寄存器中")现在被编译器是方式在这个比人类更好.