Jedyne miejsce, które pamiętam, używając tej składni, to COBOL, około 25 lat temu.
Podejrzewam, że powodem, dla którego nie jest on szeroko obsługiwany, jest fakt, że prowadzi to do niejednoznaczności, których kompilator nie może rozwiązać. W twoim konkretnym przypadku nie jest to szczególny problem, ponieważ "this" i "that" są ciągami, dla których operator warunkowy OR nie ma sensu. Ale rozważyć ten fragment, jak w języku C, gdzie efektem warunkowego jest wartość logiczna 0 lub 1:
int a = 22;
int b = 99;
int rslt = SomeFunction();
if (rslt == (a || b))
W tym momencie kompilator nie może wiarygodnie ustalić, co chcesz. Czy zamierzasz w tym:
if (rslt == a || rslt == b)
lub, czy zamierzają:
if ((rslt == 0 && a == 0 && b == 0) || (rslt == 1 && a == 1 && b == 1))
Można ograniczyć rodzaje, dla których mogą być stosowane takie składnia, ale potem masz palowania wyjątki na górze co idealnie powinna być składnią ortogonalną. To będzie dezorientować użytkowników i komplikować kompilator.
Wymusza również wyrażenia, które mają być oceniane inaczej w warunkowych niż w instrukcji przypisania. To też niewątpliwie komplikowałoby komplikacje.
Z pewnością można by go uruchomić, ale myślę, że wymagałoby to nowej składni z przeciążonymi symbolami, a wszystko to dla wątpliwej korzyści.
ty * może * napisać, że w C lub C++ .. po prostu nie robi tego, co ty też chcesz;). –