我试图通过删除代码中的 if 语句来解决时序泄漏,但由于 c++ 对 if 语句中整数输入的解释,我被卡住了。
请注意,我假设编译器确实创建了一个条件分支,这会导致时序信息泄露!
原始代码是:
int s
if (s)
r = A
else
r = B
现在我正在尝试将其重写为:
int s;
r = sA+(1-s)B
因为 s 未绑定到 [0,1],所以如果 s 不在 [0,1] 范围内,我会遇到这样的问题:它会错误地乘以 A 和 B。如果不使用 s 上的 if 语句来解决这个问题,我该怎么办?
提前致谢