Compilerfehler mit Template-Parameter = void* - Seite 16

 
Wer würde bestreiten, dass Sie talentierter sind?)
 
Ilya Malev:

Und dann eine Folgefrage: Warum machen Sie nicht

MASK( t, n )

die ganze Sache in Klammern?

Das tue ich nicht, denn hier sind Klammern impliziert

#define  MASK( t, n )    (-1)

Aber Sie haben nicht diese Implikation - alles muss streng "wissenschaftlich" sein.

 
A100:

Nun, dann eine Folgefrage: Warum stellen Sie nicht

Klammern hier drinnen?

Das tue ich nicht, denn die Klammern sind hier impliziert

Aber Sie haben keine solche Implikation - alles muss streng "wissenschaftlich" sein.

Mein t ist ein Typ, n ist eine bestimmte Anzahl von Zweierpotenzen, die Maske darauf ist (1<<(n+1))-1.

#define  TMASK(T,P)   ((((T(1)<<P)-1)<<T(1))+1)

Warum ich es im zweiten Fall komplizierter gemacht habe als im ersten, können Sie sich denken.

 
Ilya Malev:

Daraus schließe ich, dass Sie in jedem einzelnen Fall Klammern setzen. Aber der Compiler kann das nicht tun - er braucht strenge Regeln, um Warnungen zu erzeugen

 
Alexey Navoykov:
Ich hingegen brauche sie nicht, um die Logik zu verstehen. Es stellt sich also heraus, dass ich talentierter bin? )

Ich fühlte mich an die Armee und ihre Sprüche erinnert, ein Unteroffizier scheint einen ziemlich klugen Satz gesagt zu haben: "Jeder hat seine eigene Wahrheit" - imho haben Sie Recht, aber ich auch!

;)

PS: leider wird Talent heutzutage an Geld gemessen, nichts dagegen, sei talentierter, aber nicht zum Nachteil der anderen ;)

 
Igor Makanu:

Derzeit möchte ich VS-Formular zu .dll zu MT5 auf eine einfache Weise )))) anhängen. - Ich möchte die Schaltflächenklick-Handler in einer Klasse verpacken und sie durch Traversieren eines Zeiger-Arrays von Handler-Funktionen aufrufen, und ich möchte im Haupt-EA-Code die Möglichkeit haben, die gleichen Funktionsnamen wie in VS zu schreiben, d. h. button2_Click() ....button2_Click()

SZZ: Dies ist einEOP-Problem))))

Machen Sie nicht weiter - wenn Sie es tun und veröffentlichen, wie viele Artikel/Bibliotheken zur Erstellung von grafischen Bedienfeldern/Oberflächen werden dann in die Geschichte eingehen?

 
A100:

Wenn Sie es doch tun und veröffentlichen, wie viele Artikel/Bibliotheken zur Erstellung von grafischen Panels/Schnittstellen werden dann in die Geschichte eingehen?

Leider ist es "zu spät dafür", während ich hier im Thread schrieb, hatte man mir schon mit meinen Gedanken geholfen, alles ist schon fertig, sehr kompakt und alles im Stil von VS

Ich werde für eine lange Zeit nichts posten, es tut mir nicht leid, aber die zusätzliche Zeit, um Spucke von Gratulanten zu sammeln... Ich habe auch offline genug davon, in der Praxis ist es einfacher zu tun, was man sagt: Hilf niemals einem anderen, wenn du nicht darum gebeten wirst).

))

 

Ich frage mich, wer sind diese Befürworter von "keine Zahnspange"? Praktisch gibt es keinen Code, in dem nur eine Zeile Code unter if oder for steht. Auch wenn es am Anfang nur eine Zeile gibt, wird sie wahrscheinlich irgendwann später erscheinen und wir müssen geschweifte Klammern hinzufügen. Das Setzen von zwei geschweiften Klammern ist anfangs gar nicht teuer, aber wenn man sie danach setzt, muss man mit den Augen durch den Code laufen, um das Ende der Zeile zu finden.

Ich nehme an, sie sind Lehrer. Denn man kann eine sehr gute Kenntnis der Sprache beobachten, insbesondere derjenigen Aspekte der Sprache, die praktisch von geringem Nutzen sind, mit dieser Tendenz, sie endlos zu schikanieren. In der Vorlesung schreibt man ein paar Zeilen Code und diskutiert sie eineinhalb Stunden lang, hier stellt sich die Frage nach geschweiften Klammern gar nicht.

Der größte Fehler durch fehlende geschweifte Klammern tritt bei der Überarbeitung und Fehlersuche auf. Nehmen wir an, wir müssen etwas ausdrucken und fügen eine Zeile ein, aber niemand denkt in diesem Moment daran, dass die nächste Zeile unter if oder for liegt. Dasselbe passiert bei Änderungen - man findet eine Stelle, fügt eine Zeile hinzu und schon ist alles kaputt. Ich bin schon oft auf solche Probleme gestoßen und nicht nur bei mir selbst (ich hatte es nur einmal und seitdem schreibe ich sofort zwei Klammern). Ich empfehle daher jedem, nach if und for ein Paar geschweifte Klammern zu setzen. Außerdem ist es ein guter Schutz gegen verlorene geschweifte Klammern, was der schwierigste Fehler bei der Suche ist.

 

Es gibt zwei weitere Lager:

1. Befürworter eines vertikalen Kodex.

2. Befürworter des horizontalen Codes.

Auch ein interessantes Thema.

 
Dmitry Fedoseev:

Es gibt zwei weitere Lager:

1. Befürworter eines vertikalen Kodex.

2. Befürworter des horizontalen Codes.

Auch ein interessantes Thema.

Kombinieren Sie das Hauptthema des unnötigen () Themas mit Ihren neuen Themen in einem Code:

int sum(int a,int b){return a+b;}
//+------------------------------------------------------------------+
void OnStart()
  {
   Print(sum(3,7));
  }
//+------------------------------------------------------------------+

... ging Popcorn holen ...