Ton*_*ony 0 c++ ternary-operator
添加到三元运算符的标准行是什么,以便在不满足条件时不执行任何操作?
例:
int a = 0;
a > 10 ? a = 5 : /*do nothing*/;
Run Code Online (Sandbox Code Playgroud)
使用a似乎可以解决问题,但我想知道是否有更普遍接受的方式.
Hel*_*t D 12
那样做:
a = a > 10 ? 5 : a;
Run Code Online (Sandbox Code Playgroud)
或者干脆:
if (a > 10) a = 5;
Run Code Online (Sandbox Code Playgroud)
另外一个选择:
a ? void(a = 0) : void();
Run Code Online (Sandbox Code Playgroud)
这个的好处是,即使您无法构造一个实例来decltype(a = 0)放入“不执行任何操作”表达式,它也能工作。(无论如何,这对于原始类型来说并不重要。)