Mhhh, ich muss sagen das mich das goto nicht stört. Die alternative ist entweder ein deeply nested scope oder jede Menge code duplizieren durch lokale variablen aufräumen. Goto ist schlecht, aber es hat durchaus nutzen.

Das mit den Klammern... Sicher? Ich kann mir vorstellen das ein kaputter merge auch das hier durchgelassen hätte:
Code:
{ goto fail; }
{ goto fail; }



Würde auch kompilieren, selbes Problem. YMMV.

Ich steh übrigens total auf zuweisungen in ifs, aber ich steh auch auf ternary operatoren. Und das extra klammer paar, ohne das es beim kompilieren eh ne Warnung unter Clang gibt, macht es deutlich das es kein Vergleich ist. Generell finde ich expressions extrem sexy, PLUS, selbst simple compiler können aus einem ternary ein conditional move machen. Aber das ist durchaus Geschmackssache. Solange man konsequent bei einem stil in einem Projekt bleibt kann ich damit leben.


Shitlord by trade and passion. Graphics programmer at Laminar Research.
I write blog posts at feresignum.com