AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

F2084 beim kompilieren in Win32

Ein Thema von BigAl · begonnen am 30. Mai 2023 · letzter Beitrag vom 1. Jun 2023
Antwort Antwort
Seite 2 von 2     12   
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#11

AW: F2084 beim kompilieren in Win32

  Alt 31. Mai 2023, 08:07
Vergleich auf Gleicheit (oder Ungleichheit) sollte bei einfachen Typen ja immer gehen. SizeOf(T) und dann schauen ob da die gleiche Byte-Folge steht sollte ja grundsätzlich kein Problem darstellen.
Genau das macht ja der Default-Equality-Comparer. Ist aber wirklich nicht unbedingt was man haben will. Hast du bspw. zwei Float-Werte, betrachtest du die in der Regel als gleichwertig, wenn sie auf den ersten x Nachkommastellen gleich sind. Oder bei einem Record - Da reicht es schon, wenn die unsichtbaren "Padding"-Bytes zwischen Feldern unterschiedlich sind. Oder zwei unterschiedliche Strings, aber mit gleichem Inhalt. Oder...
  Mit Zitat antworten Zitat
BigAl

Registriert seit: 6. Sep 2008
Ort: Kehl
504 Beiträge
 
Delphi 12 Athens
 
#12

AW: F2084 beim kompilieren in Win32

  Alt 31. Mai 2023, 08:17
Genau das macht ja der Default-Equality-Comparer. Ist aber wirklich nicht unbedingt was man haben will. Hast du bspw. zwei Float-Werte, betrachtest du die in der Regel als gleichwertig, wenn sie auf den ersten x Nachkommastellen gleich sind. Oder bei einem Record - Da reicht es schon, wenn die unsichtbaren "Padding"-Bytes zwischen Feldern unterschiedlich sind. Oder zwei unterschiedliche Strings, aber mit gleichem Inhalt. Oder...
Naja. Bei Float-Werten auf Gleichheit nimmt man halt normalerweise "SameValue". Schon klar, dass das derzeit nicht unbedingt funktioniert. Aber zumindest könnte man bei der Einschränkung "Zahl" dann alle anderen Operatoren (>, <, +, - etc.) verwenden, was ja aktuell bei generischen Typen nicht so ohne weiteres geht. Dafür ist aber der Delphi-Compiler (im Vergleich z.B. zu C++) sauschnell .
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: F2084 beim kompilieren in Win32

  Alt 31. Mai 2023, 08:27
Wäre halt cool, wenn man bei genrics die Typen einschränken könnte.
Mit entsprechenden Constraints geht das ja prinzipiell. Allerdings gibt es noch keine Möglichkeit auf Zahlenwerte oder ähnliches einzuschränken, sondern nur auf bestimmte Interfaces, parameterlose Konstruktoren (um den Typ instantiieren zu können) und so weiter.

Ich wäre auch sehr dafür, wenn die Constraints weiterentwickelt würden. Da fehlt auch noch ein wenig hinsichtlich Weitergabe der Constraints beim erneuten Einsatz eines generischen Typs als generischer Parameter usw.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#14

AW: F2084 beim kompilieren in Win32

  Alt 31. Mai 2023, 09:15
Meines Wissens kann immer auf gleich oder ungleich getestet werden. Ob dann am Ende das Ergebnis der Erwartung entspricht ist eine andere Sache.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
BigAl

Registriert seit: 6. Sep 2008
Ort: Kehl
504 Beiträge
 
Delphi 12 Athens
 
#15

AW: F2084 beim kompilieren in Win32

  Alt 31. Mai 2023, 09:16
Meines Wissens kann immer auf gleich oder ungleich getestet werden. Ob dann am Ende das Ergebnis der Erwartung entspricht ist eine andere Sache.
Uwe fasst es wir immer zusammen. Genau das habe ich gemeint .
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: F2084 beim kompilieren in Win32

  Alt 31. Mai 2023, 11:45
Vergleich auf Gleicheit (oder Ungleichheit) sollte bei einfachen Typen ja immer gehen.
Es ist aber möglich, dass man hier sonstwas rein gibt, wie z.B. auch Records oder Arrays.
Und der generische Code ist immer auf das Minimale ausgelegt.
$2B or not $2B
  Mit Zitat antworten Zitat
BigAl

Registriert seit: 6. Sep 2008
Ort: Kehl
504 Beiträge
 
Delphi 12 Athens
 
#17

AW: F2084 beim kompilieren in Win32

  Alt 31. Mai 2023, 11:52
Vergleich auf Gleicheit (oder Ungleichheit) sollte bei einfachen Typen ja immer gehen.
Es ist aber möglich, dass man hier sonstwas rein gibt, wie z.B. auch Records oder Arrays.
Und der generische Code ist immer auf das Minimale ausgelegt.
Ein Record oder ein Array ist ja auch kein "einfacher Typ" laut Deklaration (hier). Mir würde es schon reichen wenn ich meine Generics auf einfache Typen einschränken könnte und dafür dann mehr Freiheit hätte. Das würde mir schon enorm helfen.
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: F2084 beim kompilieren in Win32

  Alt 31. Mai 2023, 12:07
Es geht leider nur für "aufwändigere" Typen ("record" oder "constructor") einzuschränken, bzw. für explizit angegebene Typen.
https://docwiki.embarcadero.com/RADS...ts_in_Generics

Sowas wie z.B. "ordinal" (Integer, Boolean, Byte, Char, ....), "numeric" (ordinal und Floats) oder "string" sowie "noreferences" geht leider nicht.
$2B or not $2B

Geändert von himitsu (31. Mai 2023 um 12:10 Uhr)
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.456 Beiträge
 
Delphi 11 Alexandria
 
#19

AW: F2084 beim kompilieren in Win32

  Alt 1. Jun 2023, 12:34
Und auch nicht Aufzählungstypen. Wir könnten sooo viel Code sparen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 12:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz