【发布时间】:2017-10-27 17:32:36
【问题描述】:
我问了这个问题:static_assert of const Variable
显然,问题在于浮点左值是否会转换为右值以进行比较?
那么在这段代码中是否发生了左值到右值的转换?
const float foo = 13.0F;
static_assert(foo > 0.0F, "foo must be greater than 0.");
【问题讨论】:
-
foo是float。0.0是double。 必须进行转换才能比较两者,因为原始类型不匹配。 -
@JesperJuhl 谢谢,我犯了复制粘贴错误。我已经纠正了。我在问文字与左值类型相同的情况。
-
对谁来说,这似乎是this answer“值和表达式”部分的症结所在
标签: c++ comparison rvalue lvalue lvalue-to-rvalue