Fehler, Irrtümer, Fragen - Seite 1692
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Zwei Quellen mit demselben Inhalt belegen eine unterschiedliche Anzahl von Bytes (doppelt so unterschiedlich).
Es scheint, dass an irgendeiner Stelle mit Unicodes herumgepfuscht wird.
Wie kann ich generell erreichen, dass eine große Datei nur halb so viele Bytes benötigt? Dabei bleibt der Text der Quelle unverändert.
Zwei Quellen mit demselben Inhalt belegen eine unterschiedliche Anzahl von Bytes (doppelt so unterschiedlich).
Es scheint, dass an irgendeiner Stelle mit Unicodes herumgepfuscht wird.
Wie kann ich generell erreichen, dass eine große Datei nur halb so viele Bytes benötigt? Dabei bleibt der Ausgangstext unverändert.
Ich kopierte den Inhalt der großen Datei in Notepad und speicherte ihn in einer neuen Datei. Sie wurde um die Hälfte verkleinert.
Und wie kann man erreichen, dass der Meta-Editor keine "dicken" Dateien erstellt?
Und wie sorgt man dafür, dass der Meta-Editor keine "fetten" Bilder erstellt?
Du hättest es zuerst machen müssen. Der Fehler tritt NUR hier auf. Alle Anrufe davor gehen ohne Probleme durch.
Das hier ist wirklich seltsam. Die Pluspunkte hier sind bei allen drei Aufrufen falsch.
Das ist eine andere Geschichte.
Nein, es ist das Gleiche. Ich habe mir die Methodenaufrufe im Debugger angesehen: Ich habe den letzten Aufruf in Ihrem Beispiel auskommentiert, Haltepunkte auf beide Methoden der Klasse gesetzt und das Debugging gestartet. Der Haltepunkt wurde aus der Methode void func(const int&) entfernt, d.h. der Compiler hat diese Methode rausgeschmissen, so dass die Mehrdeutigkeit beseitigt wurde. Und wenn man eine Funktion mit einem konstanten Argument aufruft, entfernt der Compiler offensichtlich nicht die Methode mit der Referenz und das Ergebnis ist eine unlösbare Überladung... Etwa so. In jedem Fall ist Ihr Code in C++ fehlerhaft.
Sergei Vladimirov:
In jedem Fall ist Ihr Code in C++ fehlerhaft.
In mql gibt es eine zusätzliche Füllung mit Referenzen. So oder so, ich mag das Verhalten im obigen Code nicht.
Das hier ist wirklich seltsam. Hier liegt bei allen drei Aufrufen ein Fehler in den Pluszeichen vor.
In mql gibt es zusätzliche Verknüpfungsmöglichkeiten. Jedenfalls gefällt mir das Verhalten im obigen Code nicht.
In diesem Fall würde ich nicht wollen, dass es überhaupt einen Wechsel zu C++ gibt.
Das ist die Kernfrage der Debatte. Ich habe Ihnen gerade gesagt, "wo der Hund im Loch steckt".
Das Verhalten ist übrigens dasselbe wie in C++, aber wenn wir nur die ersten beiden Aufrufe stehen lassen, wirft der Compiler eine der Funktionen raus, so dass die Unsicherheit verschwindet. Aber es ist immer noch ein Fehler, der vom Compiler automatisch behoben wird.
Der Fehler ist hier richtig.
Aber das ist eine strittige Frage. :) Ich habe Ihnen gerade geantwortet, "wo der Hund versteckt ist".
Dort gibt es wirklich keinen Hund. Die Priorität in der Überladung kann im Compiler festgelegt werden, wie es die Entwickler bei den ersten beiden Aufrufen getan haben.