AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Delphi 13 - Ternary Operator

Ein Thema von bernau · begonnen am 27. Aug 2025 · letzter Beitrag vom 5. Sep 2025
Antwort Antwort
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
652 Beiträge
 
Delphi XE6 Enterprise
 
#1

AW: Delphi 13 - Ternary Operator

  Alt 28. Aug 2025, 15:43
Eine neue Funktion iif(<condition>, <truevalue>, <falsevalue>), die per Compiler Magic als Ternary Operator fungiert, also anhand der <condition> nur <truevalue> oder <falsevalue> auswertet, wäre sehr wohl möglich gewesen.
Oder man setzt es ganz anders um, indem "lazy evaluation", d.h. Auswerten eines Parameters immer nur dann, wenn tatsächlich ein Zugriff stattfindet, per Compiler Magic mit einem Keywort umgesetzt wird. Dann kann man es bei IfThen belassen, aber die Definition sähe aus wie "function IfThen(AValue: Boolean; [lazy] const ATrue: Integer; [lazy] const AFalse: Integer = 0): Integer; overload; inline;".
Und die Benutzung wäre nicht auf IfThen() beschränkt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.715 Beiträge
 
Delphi 12 Athens
 
#2

AW: Delphi 13 - Ternary Operator

  Alt 28. Aug 2025, 16:04
Zitat:
lazy
Dann würde es aber auch wieder nur für Inline-Funktionen funktionieren (und auch nur, wenn das Inline wirklich funktioniert, also z.B. nicht in Packages oder wenn man ein Uses vergisst uvm.),
denn ansonsten gibt es keine andere Wahl, als es vorher aufzulösen, um das Ergebnis an die Parameter übergebenzu können.

Allerdings könnte es beim Inline auch jetzt schon so behandelt werden, ohne [lazy], wenn das Inlining wirklich ordentlich arbeiten würde.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz