C++20中的std::bit_cast
是reinterpret_cast
的一个更安全的版本,它可以与constexpr
一起工作,所以我读到了,但是这是否意味着所涉及的变量的实际值也会按位重新解释?例如,下面的简单代码
#include <iostream>
#include <bit>
int main()
{
float f = 123.017;
auto f_int = std::bit_cast<int>(f);
std::cout << "f : " << f << ", f_int : " << f_int << std::endl;
}
产生此输出
f:123.017,f_整数:1123420340
我尝试使用std::bit_cast
安全地重新解释数据类型,希望保留原始数据值的缩小版本,这显然没有发生。
1条答案
按热度按时间hsgswve41#
std::bit_cast
与memcpy
相同,原始值的位数与转换值的位数相同。您可能在static_cast
之后: