以下代码在我的工作系统中运行,相同的代码在我的PC中引发错误。
std::bitset<32> my_bit(*(uint32_t*)&(OFDM_cod[V][a/8].real()));
Error:
lvalue required as unary ‘&’ operand
有什么建议为什么会发生这种情况?提前致谢!
答案 0 :(得分:4)
你不能拿一个临时的地址,这就是
&(OFDM_cod[V][a/8].real()));
正在做。它可以简化为
&x.real(); //here assuming real() does not return a reference
这并不好。您的代码可能适用于非标准兼容的编译器,这种编译器很容易 - 但是这种行为违反了C ++标准。