Errori, bug, domande - pagina 1619

 
Slawa:

La funzione di sistema Point() è in realtà inlined e convertita in un semplice accesso alla variabile _Point

Qualcuno diceva, se ricordo bene Renat o tu, che si raccomanda di usare Point(), Digits()... È vero? Almeno, io lo faccio sempre, tenendo presente la raccomandazione.
 
Andrey Dik:
Qualcuno ha detto, se ricordo bene, Renat o tu, che si raccomanda di usare Point(), Digits()... È vero? Almeno, ricordando la raccomandazione, lo faccio sempre.

Sì, proprio così.

La prossima volta darò degli esempi che sono in linea con le nostre raccomandazioni

 

Alcune domande e richieste agli sviluppatori.

Un anno fa stavamo discutendo l'idea di restituire il valore della funzione per riferimento (richiesta 1292558). Alla fine ci è stato assicurato che il problema è stato risolto e la funzione apparirà alla fine dell'autunno (l'anno scorso). Ma siamo ancora qui. Possiamo chiedere per quale motivo questo non è stato implementato?

2. E l'eredità multipla? Io, per esempio, ne ho davvero bisogno, almeno la doppia eredità.

3. la parola chiave override per le funzioni virtuali nelle classi derivate è una cosa assolutamente necessaria per OOP. Il compilatore non sarà in grado di controllarli altrimenti: se si imposta un tipo sbagliato di argomento da qualche parte o ci si dimentica di usare const da qualche parte, ecco fatto - questa è una funzione diversa. Si ottengono anche errori che sono difficili da catturare.

4. abbiamo bisogno della possibilità di sovraccaricare l'operatore fantasma.

 

Avete anche bisogno di perfezionare i modelli di funzione. In questo momento, tutti i vostri nomi di tipo sono cablati agli argomenti delle funzioni, il che rende impossibile implementare molti costrutti. Per esempio questo:

template<typename T> 
T  func()  { return T(0); }

void OnStart()
{
  func<int>();
}

Naturalmente, questo può essere risolto in modo grossolano, passando argomenti fittizi nella funzione, ma si capisce che questo confonde molto il codice.

 
Alexey Navoykov:

Avete anche bisogno di perfezionare i modelli di funzione. In questo momento, tutti i vostri nomi di tipo sono cablati agli argomenti delle funzioni, il che rende impossibile implementare molti costrutti. Per esempio questo:

Naturalmente, questo può essere risolto in modo grossolano, passando argomenti fittizi nella funzione, ma si capisce che questo confonde molto il codice.

È nei nostri piani e lo faremo.
 

Vorrei anche che il compilatore specificasse nel log il tipo di variabile che ha causato l'errore quando rileva un errore all'interno del template, altrimenti può essere molto difficile trovarlo.

Supponiamo il seguente frammento di codice:

void F(A& a)  {  }
void F(B& a)  {  }


template<typename T> 
void    Func(T& obj)  { F(obj); }   // 'F' - no one of the overloads can be applied to the function call

Non sappiamo a quale tipo T corrisponde qui, quindi è difficile determinare da dove nel programma è stato chiamato questo schema. E ci possono essere molti frammenti di questo tipo, compresi quelli di altri modelli. E se il compilatore avesse scritto che obj è di tipo C per esempio, avreste capito subito dove guardare.

 
Bild 985 non conosciuto bug

Aperto, Iniziato: 2016.07.04 06:48, #1507434

In arrivo un mese ....

 
Vladimir Pastushak:
Bild 985 non conosciuto bug

Aperto, Iniziato: 2016.07.04 06:48, #1507434

In arrivo un mese ....

Gli amministratori e gli sviluppatori non vanno via per un fine settimana senza una risposta...

 
Ciao a tutti. Ho fatto questa domanda diverse pagine fa, ma ci riproverò. C'è un modo per ri-accedere al mio conto quando la connessione al server MT5 è interrotta? La ricerca sui forum non ha dato nulla.
 
Dmitri Custurov:
Ciao a tutti. Ho fatto questa domanda diverse pagine fa, ma ci riproverò. C'è un modo per ri-accedere al mio conto quando la connessione al server MT5 è interrotta? La ricerca sui forum non ha dato nulla.
No, non puoi. Ma la riconnessione è automatica, quindi non ce n'è bisogno.