为什么我不能std::bit_cast字符串文字的内容?

在尝试编译时字符串操作时,我遇到了一个奇怪的现象:

#include <bit>

constexpr const char str[4] = "abc";

// error: constexpr variable 'x' must be initialized by a constant expression
constexpr auto x = std::bit_cast<int>("xyz");
// OK
constexpr auto y = std::bit_cast<int>(str);

请参阅编译器资源管理器。

为什么允许对char[]存储在全局变量中的 a进行位转换,但不允许对字符串文字进行位转换?std::bit_cast不修改其源并且结果是一个值,因此没有修改字符串文字存储的潜力。

以上是为什么我不能std::bit_cast字符串文字的内容?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>