Errori, bug, domande - pagina 2719

 
fxsaber:

Costruttore solo perché non si può inizializzare un campo const senza di esso. Struttura o classe - non fa alcuna differenza. La cosa principale è avere un oggetto.

Dipende da voi.


 
Vict:

Dipende da voi.

Non pensavo che i campi di costrizione fossero contrari alla pratica generale.

 
Leinformazioni sui bug nelle priorità di chiamata delle funzioni template sovraccaricatesono state aggiornate e integrate.
 
fxsaber:

Non pensavo che i campi di costrizione fossero in contrasto con la pratica generale.

No )), ho solo pensato che dovrebbe essere giusto sulle strutture. Perché allora abbiamo bisogno di stampelle? È abbastanza elegante, fai un array, fai un loop e fai set(). Se c'è un errore nella logica (chiamata ripetuta da qualche parte), avrete un crash.

class A {
    int a;
public:
    A() : a(INT_MAX) {}
    void set(int aval) {if (a != INT_MAX) abort(); a = aval;}
    int get() {return a;}
};
 
Vict:

Non credo che valga la pena di mettere il naso nella palude di qualcun altro.

 
Sergey Dzyublik:

Non credo che valga la pena di mettere il naso nella palude di qualcun altro.

Junkie? fxsaber ha chiesto un consiglio, gliel'ho detto.

 
fxsaber:

Secondo me, è logico scrivere const per campi che non saranno mai (e non dovrebbero mai) essere cambiati dopo la creazione.

No. Fanno campi di costrizione in casi molto rari. E non per i tipi semplici.

 
Vict:

Un drogato? fxsaber ha chiesto un consiglio, io ho risposto.

Mantienilo semplice e le persone ti raggiungeranno...

 
Koldun Zloy:

No. I campi costanti sono fatti in casi molto rari. E non per i tipi semplici.

Un semplice esempio. Avete bisogno di una serie di MAU con periodi prestabiliti.

Ognuno di loro è un oggetto di un tipo. È chiaro che un oggetto di un tipo è fissato unicamente dal suo periodo. Ecco perché sarebbe logico renderlo costitutivo.


Altri linguaggi fanno semplicemente un array di puntatori. Non c'è questa libertà in MQL.

 
Koldun Zloy:

No. I campi costanti sono fatti in casi molto rari. E non per i tipi semplici.

Sapete come sono impostati l'ottimizzatore e il compilatore MQL?
Come potete essere così sicuri che i campi costitutivi dei tipi semplici non siano usati per questo scopo?