std::bit_cast
显然是在 c++20 中引入的。和std::start_lifetime_as
被提议用于 c++23(来自P0593R5 https://wg21.link/p0593R5)。由于它们似乎都要求所涉及的数据类型无论如何都是微不足道的,因此一旦引入后者,还需要前者吗?
对于没有提供有关这些新功能的更多信息,提前表示歉意。我是在观看 cppcon 2019 关于类型双关的讲座后才听说它们的,而且我找不到太多关于它们的信息start_lifetime_as
与谷歌。我希望其他人看到这个可能会知道更多。
答案很简单:bit_cast
返回一个值,而start_lifetime_as
“改变”内存(以抽象机中存在的方式,但预计不会影响任何物理位)。您使用前者将现有对象(一次)解释为一组位;您使用后者来(永久)将现有位解释为对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)