Jakou ztrátu kompatibility? Kdo chce používat stávající deklarace může pro všechny verze. Kdo chce i inline, tak je to jeho rozhodnutí a kompatibilita vzhledem kupředu. Takže žádná ztráta.
Tomu, že kód s novou featurou nelze použít ve starších Delphi, já říkám ztráta. Speciálně za situace, kdy nelze jednoduše doplnit něco, co mi tu featuru umožní získat i ve starších Delphi (např. pomocí IFDEF STAREDELPHI doplním funkci, která v nich ještě nebyla). To tady podle všeho nemůžu - pokud chci inline proměnné,
musím buď zahodit starší Delphi, nebo vlastně celý kód napsat dvakrát, čímž je veškerý přínos z větší přehlednosti v háji.
Výhody:
- zpřehlednění a bezpečnější kód (proměnná je platná jen kde programátor chce)
Té závorce nevěřím. Jsem si takřka stoprocentně jistý, že proměnná bude platná až do konce funkce, akorát na ni možná kompilátor nedovolí odkazovat.
- pry to je dulezite pro různé jiné moderní jazykové konstrukce, at uz existující (anonymní metody) nebo možné
Proto se ptám, protože mě žádná nenapadá.
Ostatní důvody beru. Hlavně je pro mě ale důležitý ten kód, protože jsem teprve z něj pochopil, že inline proměnnými se myslí definice
var prom: typ; někde uvnitř těla funkce. Otázku jsem pokládal v domění, že se pod inline proměnnými myslí to, co zavedlo C++17. Důvod definovat funkce v body samozřejmě vidím a souhlasím, že by to bylo super - i když za sebe si myslím, že cena (ztráta kompatibility) je příliš vysoká.