Пример, который вы привели, можно интерпретировать только одним способом (например, операторы if), независимо от того, имеет ли троичный оператор ассоциативность справа налево или слева направо.
Где ассоциативность справа налево имеет значение, когда у вас есть:
x = a ? b : c ? d : e;
Что интерпретируется как: x = a ? b : (c ? d : e)
, а не x = (a ? b : c) ? d : e
.
Чтобы дать более реалистичный пример:
int getSign(int x) {
return x < 0 ? -1 :
x > 0 ? 1 :
0;
}
Это идентично (возможно, более читабельным) операторам if / else-if:
int getSign(int x) {
if (x < 0)
return -1;
else if (x > 0)
return 1;
else return 0;
}