Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
5. Apr 2012
Dieses Set wird schon im Compiler erstellt, als implizite Konstante und dann wird darauf nur noch eine einzige Abfrage darauf ausgeführt.
Gut, in den x86-CPUs soll dieser eine BTC-Befehl nicht unbedingt der aller Schnellste sein, aber egal. (vom Code her ist das doch übersichtlicher? )
Beim CASE sind das mehrere Assemblerbefehle für die beiden Vergleiche und Delphi optimiert ein CASE sogar...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
3. Apr 2012
Ach ja, warum das Zusammenfügen nicht geht, aber das Aufteilen schon, ist recht einfach erklärt.
Die Werte des Enums sind ja "nur" Namentliche Bezeichner für je einen bestimmten nummerischen Wert.
Ersetzt man mal die Namen durch ihre Werte, dann fällt das Dilemma auf.
type
TTeilmengeA = (0, 1, 2);
TTeilmengeB = (0, 1, 2);
TAll = TTeilmengeA + TTeilmengeB; // würde nun...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
3. Apr 2012
OK, dann
IN ist nur für das Prüfen eines Elementes in einer Mengenvariable
und nicht in einem Mengentypen.
Man könnte Embarcadero im QS mal fragen, ob die das nicht implementieren könnten
oder man geht eben doch über die Konstanten.
type
TAll = (a1, a2, a3, b1, b2, b3);