Compilerfehler mit Template-Parameter = void* - Seite 14

 

Nur Klammern. Nur Waschbären. Nur Hardcore !!!11111

#define    cmp(D1,D2)          \
  ((t_flp(D1)||t_flp(D2))?(((D1)>=(D2))?(((D1)-(D2))>=EPS(D1)?1:0):(((D2)-(D1))>=EPS(D1)?-1:0)):(((D1)>(D2))?1:(((D1)<(D2))?-1:0)))
 
Ilya Malev:

Nur Klammern. Nur Waschbären. Nur Hardcore !!!11111

Nur bei #define erzeugt der Compiler nicht die entsprechenden Warnungen, undes wäre auch schön, wenn

Übrigens sind Klammern hier nicht notwendig.

(((D1)<(D2))?-1:0)
 

Gott bewahre Sie davor, Klammern in Makros zu verwenden. Man kann dort nicht auf sie verzichten.

Igor Makanu:

da sie sich bei der Portierung von Code in andere Programmiersprachen nicht ändert

In anderen Sprachen (z.B. BASIC oder Pascal) sind die bitweisen und bedingten Operatoren ungültig, es handelt sich also um ein Scheinproblem, und dass MQ in der Vergangenheit die Prioritäten durcheinander gebracht hat, ist kein Indikator).

 
A100:

Nur bei #define erzeugt der Compiler nicht die entsprechenden Warnungen, was auchschön wäre

Aber zuerst muss man es in einem bestimmten Code verwenden, und es gibt einen solchen Hinweis, dass es nicht an einer Stelle platziert werden sollte, die es für verdächtig hält, sondern an einer Stelle, an der im Code das Symbol von define steht. Ich denke, dies ist eine Art Hinweis darauf, dass man seine Coons behalten und ihren Präprozessor nicht missbrauchen sollte)

 
Ilya Malev:
Übrigens, verwenden Sie in Ihrem Code grundsätzlich keine Leerzeichen? Hier ist ein weiteres Beispiel. Ich weiß nicht, wie man einen solchen Zeichenwirrwarr verstehen kann, wenn der gesamte Code in diesem Stil gehalten ist.
 
Alexey Navoykov:
Übrigens, verwenden Sie keine Leerzeichen in Ihrem Code? Hier ist ein weiteres Beispiel. Ich weiß nicht, wie man einen solchen Haufen von Zeichen verstehen kann, wenn der gesamte Code in diesem Stil gehalten ist.

In Definitionen, ja, ich benutze sie nicht, weil ich sie nicht als Code betrachte, sie sind nur Makros, sie sollten so kompakt wie möglich sein. Und dieses Beispiel wurde speziell als das am meisten auf Waschbären ausgerichtete der gesamten Bibliothek ausgewählt ))

Was das Beispiel betrifft, das in 2 Minuten geschrieben wurde, so ist die Einrückung dort, wo ich den wichtigen Teil zeigen wollte - die Aufrufe del in OnStart und der Rest war sekundär und es ist wichtiger, dass der Beitrag nicht eine halbe Seite einnimmt, als die Einrückung beizubehalten.

 
Ilya Malev:

... nur Makros sind, sollten sie so kompakt wie möglich sein.

... Es ist wichtiger, dass der Beitrag nicht eine halbe Seite einnimmt als dass er eingerückt ist.

Ich verstehe Ihre Logik und Ihre Prioritäten nicht.)
 
A100:

Warum hängst du sie nicht selbst auf? Ich konnte mir nicht die Mühe machen, Ihr Profil anzuschauen:

Es sollte so sein:

Sie verkünden das eine, tun aber genau das Gegenteil.

Wenn selbst Anhänger von Klammern diese nicht selbst setzen, ist das der beste Beweis für ihre Nutzlosigkeit

Leider wurde mein Code, den Sie als Beispiel anführten, von mir vor langer Zeit geschrieben, ich glaube vor 4 Jahren.

In meinem Beitrag ging es darum, Eindeutigkeit in arithmetischen/logischen Ausdrücken zu begrüßen, und Klammern ermöglichen es, dies zu erreichen, jetzt versuche ich generell, eindeutige Bedingungen zu schreiben, es ist einfacher für mich, und es ist unmöglich, einen Fehler zu machen, Sie haben ein Codefragment zitiert, in dem ich virtuelle Aufträge berechnete, jetzt schreibe ich dieses Problem auf diese Weise:

allorders = OrdersCount(all_buy,all_sell);
if(allorders==0){
   // если торговля одним ордером выставим ордер и выход
   if(MA1>MA2) { BUY();  return;}
   if(MA1<MA2) { SELL(); return;}
.......   

// или так
   if(all_buy==0){
      if(MA1>MA2) { BUY();  return;}
   }
   if(all_sell==0){
      if(MA1<MA2) { SELL();  return;}
   }

//ф-ция подсчета ордеров
int OrdersCount(int &buy_,int &sell_)
{
   buy_=0; sell_ =0;
.............   
   return(buy_+sell_);

}

Ich bin kein Experte für Klammern, aber ich bin ein Befürworter eines einwertigen Algorithmus, der sich genauso wie eine Handelsstrategie lesen wird

;)

PS: Ich beteilige mich nicht mehr an diesem Chor, auch wenn@fxsaber geschrieben hat, dass Klammern helfen, Fehler zu vermeiden, dann gibt es nichts zu diskutieren, denn er weiß, wie man solche kompakten Codes schreibt, es gibt nur zwei Mal mehr von diesen Leuten in diesem Forum, Kürze ist die Schwester des Talents - es geht um@fxsaber


Ilya Malev:

Nur Klammern. Nur Waschbären. Nur Hardcore !!!11111

Und dann habe ich verstanden, warum Metacquotes keine vollwertigen Zeiger in MQL.... bereitstellen Ihre Makros und Ihren Code mit der Übergabe von Zeigern, der Dereferenzierung von Zeigern in Funktionen abbilden... Hardcore ist sehr mild, was kommt als Nächstes, BDSM? ))))

 
Igor Makanu:

Denn er ist in der Lage, so kompakte Codes zu schreiben, es gibt nur eine Handvoll solcher Leute in diesem Forum, Kürze ist die Schwester des Talents - es geht um@fxsaber

(Sind übereinander gestapelte Klammern die Schwester des Talents? ) Nun, jeder hat ein Recht auf seine Meinung.
 
Alexey Navoykov:
(Ist es die Schwester des Talents, voller unnötiger Klammern zu sein? ) Aber jeder hat ein Recht auf seine Meinung.

Sie sind nicht überflüssig! Sie helfen, die Logik der Ausdrucksform zu verstehen!

Wirkt sich die Anzahl der Klammern auf die Geschwindigkeit aus? - es sei denn, es wirkt sich auf die Tippgeschwindigkeit aus, aber niemand sieht es sich an.... die Anzahl der Klammern, die jeder Nutzer an einem Tag im Internet setzt, ist ein eindrucksvolles Beispiel ))))