三元运算符位选择:运算符过载有效使用

时间:2017-01-16 11:54:24

标签: c++

我正试图找到一种方法来复制hlsl中的行为,其中三元运算符实际上选择了评估条件的位,即不是评估bool它们评估为bool4。类似下面的代码:

float4 condition = float4(1, 0, 1, 0);
float4 a = float4(2, 2, 2, 2);
float4 b = float4(3, 3, 3, 3);

float4 c = condition > 0 ? a : b;

c变为(2,3,2,3)

但是,C ++三元运算符需要一个bool并只选择其中一个值。我认为这是一个合法的场景,需要超载三元运算符。

在C ++中绝对没有办法获得这种行为吗?

0 个答案:

没有答案