Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Vielleicht meinen Sie mit "normaler Implementierung" die Implementierung auf Vorlagen.
Wie sieht das aus? Was meinen Sie mit Patterns? Irgendeine spezielle, verdrehte Art, beim Programmieren mit den Fingern die Tasten zu drücken?
Schablonen, ein Erbe der alten Makro-Substitutionsmethode zur Kompilierzeit, haben ihre Bedeutung für die objektorientierte Programmierung eigentlich schon lange verloren.
In modernen Sprachen werden solche Aufgaben von Laufzeitwerkzeugen gelöst, z.B. Generics in C#, dynamische Typerkennung RTTI und die Verwendung von Variantentypen.
Es gibt natürlich immer noch alte Hasen, die Templates mögen, aber IMHO ist das für mich als Programmierer ein Zeichen, dass es Zeit ist, in Rente zu gehen.
Schablonen, ein Erbe der antiquierten Makro-Substitutionsmethode zur Kompilierzeit, haben eigentlich längst ihre Bedeutung für die objektorientierte Programmierung verloren.
In modernen Sprachen werden solche Aufgaben von Laufzeitwerkzeugen gelöst, z.B. Generics in C#, dynamische Typerkennung RTTI und Anwendung von Variantentypen.
Natürlich gibt es immer noch Oldboys, die Templates mögen, aber IMHO ist das für mich als Programmierer ein Zeichen, dass es Zeit ist, in Rente zu gehen.
Es ist lustig zu lesen ) Templates haben sich längst von Makro-Substitutionen entfernt und existieren recht erfolgreich als eigenständiges Paradigma.
Generics in C# sind nur sehr reduzierte Templates und eigentlich nicht zur Laufzeit, sondern zur Kompilierzeit, wodurch ihre Geschwindigkeit höher ist ).
Aber gerade RTTI und Variantentypen legen einige schlechte Gedanken nahe....
____________________
Okay, das ist natürlich alles cool. Aber in MQL5 gibt es nur Template-Funktionen, es gibt keine Klassen (wird es die geben?). Listen auf Templates sind also mit den aktuellen Tools nicht realisierbar.
Lustig zu lesen ) Templates haben sich längst weit von Makro-Substitutionen entfernt und existieren recht erfolgreich als eigenes Paradigma.
Generics in C# sind nur sehr reduzierte Templates, und im Allgemeinen ist es nicht die Laufzeit, sondern die Kompilierzeit, aufgrund derer die Geschwindigkeit ihrer Verwendung höher ist ).
Aber gerade RTTI und Variantentypen legen einige schlechte Gedanken nahe....
____________________
Okay, das ist natürlich alles cool. Aber in MQL5 gibt es nur Template-Funktionen, es gibt keine Klassen (wird es die geben?). Listen auf Templates sind also mit den aktuellen Tools nicht realisierbar.
Sie sind glücklich, denn fossile Paradigmen sind Ihre warmen Erinnerungen an das vergangene Jahrhundert und scheinen ein erschöpfendes Gepäck an Wissen zu sein.
Aber es gibt keinen Grund, deswegen moderne Ansätze zu verdrängen, denn die MQs werden davon ausgehen, dass ihre Kunden nostalgisch nach Großvater Macro Assembler und ANSI C sind und Vorschläge zur Verbesserung von MQL5 ignorieren.
.
Da es keine Vorlagen gibt, können Sie es auf Makros tun, jemand ich glaube, schrieb sogar einen Artikel zu diesem Thema (Makros statt Vorlagen) + analog von Algorithmen in stl auch auf Makros. Aber imho sollte das alles in der Standardbibliothek auf Templates sein, es ist irgendwie falsch, seine eigenen Container zu schreiben (nützlich nur für Ausbildungszwecke), es ist einfacher, mit einem Array zu tun.
update: keine Notwendigkeit für Algorithmen in Makros, Funktionsvorlagen sind vorhanden. Ich mag kein virtuelles Insert/... es ist besser, im Debug-Modus Asserts zur Typüberprüfung zu verwenden.
Hallo,
Ich versuche test_MQL5_List.mq5 zu kompilieren, ich habe folgende Fehler erhalten:
'm_head' - Member des konstanten Objekts kann nicht geändert werden CiSingleList.mqh 504 9
'm_tail' - Member des konstanten Objekts kann nicht geändert werden CiSingleList.mqh 505 9
'm_size' - Member des konstanten Objekts kann nicht geändert werden CiSingleList.mqh 496 9