我遇到编译错误,
constexpr char array[]={"my string"};
constexpr const char* ptr = array;
**(const char*)(& array) is not a constant expression**
我认为使用 constexpr const 并分配其他“constexpr”是可能的,但这里缺少一些东西。
第二行中的 **数组 ** 突出显示,因为它包含错误。
我已经尝试过了,
constexpr const char* ptr = array;
constexpr char* ptr = array;
constexpr char* const ptr = array;
BR
看起来编译器试图告诉您,在运行时您无法知道
array
的地址,因此 &array
不是 constexpr
,或者不是编译时已知的表达式。但是,char[]
可以隐式转换为 char*
,因此请尝试在需要使用 array
的地方使用 ptr
。不过,我不能保证它会起作用,因为我看不到你的所有代码。