GNU允许C语言省略条件表达式中的表达式2省略，此时表示表达式2与表达式1相同。例如：等价于但是如果x是一个表达式，仅求值一次。C#提供了类似的特性与"x?:y"的用法不同，??只判断x是否为null，而不是判断真假。
C++.在C++中，由于C++明确区分初始化和赋值，有时使用"if-else"的条件赋值语句并不可行。在这种情形下总是可能使用函数调用，但是这样做会显得很笨重而且不简洁。例如，如果你想要根据条件传递不同的值作为构造函数的参数，单纯使用"if-else"语句根