Errori, bug, domande - pagina 3102

 
mktr8591 #:
similmente - (const A*) convertire in A*.
Non è molto chiaro cosa vuoi trasmettere a fxsaber. Capisce esattamente cosa sta succedendo nel codice senza di voi. Ti mostra solo una situazione che non dovrebbe esserci. Il compilatore dovrebbe impedire tali conversioni.
 
Sergey Gridnev #:
Non è molto chiaro cosa vuoi trasmettere a fxsaber. Quello che succede esattamente nel codice è qualcosa che lui capisce senza di voi. Mostra solo una situazione che non dovrebbe esserci. Il compilatore dovrebbe sopprimere tali conversioni.
È un punto discutibile. Senza queste conversioni si possono avere molti problemi in alcuni posti. Inoltre, anche tali divieti del compilatore possono essere aggirati - ci sono molti modi nel forum.
 
mktr8591 #:

E la linea *2* compila e funziona bene. Perché?

La lista di inizializzazione è l'unico modo legale (e specificamente previsto) per inizializzare le costanti non statiche.

 
Andrei Trukhanovich #:

La lista di inizializzazione è l'unico modo legale (e specificamente inteso) per inizializzare le costanti non statiche.

Così ha cambiato il suo valore dopo

 
A100 #:

Così ha cambiato il suo significato dopo.

Sì, disattento. Bug? Le caratteristiche della lista di inizializzazione dovrebbero applicarsi solo all'oggetto che si sta costruendo

 
Andrei Trukhanovich #:

Sì, disattento. Bug? Le caratteristiche della lista di inizializzazione dovrebbero essere rilevanti solo per l'oggetto in costruzione

Bug. All'inizio non lo capivo nemmeno io. Per questo dico che dovresti scriverlo in modo tale che la maggior parte delle persone lo capisca. Questo vale anche per l'interfaccia

 
A100 #:

Bug. Anch'io non l'ho capito subito. Per questo dico che dovresti scriverlo in modo tale che la stragrande maggioranza delle persone lo capisca. Questo vale anche per l'interfaccia.

Sono d'accordo sulle segnalazioni di bug, naturalmente.

L'interfaccia è un'altra storia. Esempio :

Se un pilota, che sa pilotare perfettamente un aereo, passa a un altro tipo di aereo con un sistema di controllo diverso, senza studiare i manuali, non capirà molto.

È impossibile fare un'interfaccia complessa che anche la maggior parte dei professionisti possa capire senza studiare la documentazione.

 
È un errore di compilazione:
class T {};                          //(1)
template<typename T> void f( T* ) {} //(2) Error: 'T' - identifier already used
E se si scambia:
template<typename T> void f( T* ) {} //(2)
class T {};                          //(1)

va bene. Qual è la differenza fondamentale?

 
Ciao a tutti! Ho recentemente iniziato ad allenarmi su un conto demo. Oggi ho aperto: Aiuto - MQL5web-terminal. Dopo di che la piattaforma di trading ha smesso di caricarsi. Quando l'ho fatto, si è scoperto che il mio conto demo era stato cancellato con tutte le analisi tecniche che vi avevo formato. Ho dovuto aprire un nuovo conto. Perché è successo? Questo succede ai conti reali?
 
mktr8591 #:

In b3095 eseguo uno script:

Se si rimuove il sovraccarico f1(T* & Ptr), tutte e 5 le chiamate restituiscono void f1<const X>(const X*const).

È una specie di caratteristica?

Volevo scrivere questa contraddizione in 3 righe, ma non ha funzionato subito

Motivazione: