Errori, bug, domande - pagina 1768
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Questo è possibile solo in un compilatore muto. Lo sai tu stesso.
using namespace std;
struct S
{
S operator +(const S&) {cout << "operator +\n"; return S{};}
};
S operator ""_s(const char*, size_t) {cout << "literal operator\n"; return S{};}
int main()
{
cout << "___literal concatenation example___\n";
S s = "sd"_s "sf"_s;
cout << "___operator+ example___\n";
S s2 = "sd"_s + "sf"_s;
}
Esempio di concatenazione letterale___
operatore letterale
___operatore+ esempio___
operatore letterale
operatore letterale
operatore +
Come potete vedere, l'operatore+ non è stato sostituito dalla concatenazione nel secondo caso (creato per letterale con successiva aggiunta run-time). Il compilatore semplicemente non può tagliarlo fuori perché il programmatore ha troppe possibilità, il che limita molto la portata dell'ottimizzazione. Questo non è MKL, ovviamente, può essere diverso, ma l'affermazione stessa: "un compilatore normale farà tutto per me" è sbagliata.Questo non è MQL, ovviamente, può essere diverso, ma l'affermazione "un normale compilatore farà tutto per me" è errata.
Stanco di perdere tempo e denaro: l'ottimizzatore si blocca all'ultimo passaggio. Gli agenti non fanno nulla, tutto è in fase di Autorizzazione. C'è silenzio nel registro. Non ha senso attivare/disattivare gli agenti, tutto ricomincia da zero dopo il riavvio dell'ottimizzazione.
Chi ha affrontato questo problema? Come combatterlo?
Linea magica
Sequenza di operazioni in MetaEditor\1495 ad una risoluzione dello schermo di 1024x768 :
- Aprire il file allegato
- Spostare il cursore di scorrimento orizzontale tutto a destra (come nell'immagine)
- Nella terza linea clicca su /*12345*/
Altre impostazioni: Service/Settings/General/Tabulation 4 caratteriQuando si tenta di convertire una stringa in un numero usando StringToInteger(), se la stringa non contiene un numero, restituisce 0 senza un errore (GetLastError() = 0). Se i parametri di input contengono una stringa e l'utente ha specificato i valori in modo errato - la funzione restituirà un valore errato e nessun errore. Questo è male.
Inoltre, se la stringa contiene una rappresentazione numerica errata, per esempio, 5o (invece di 50), la funzione restituirà il valore 5 senza generare un errore. Non solo non è 0, ma la funzione rompe la stringa come 5, che è di nuovo sbagliato.
Per favore, cari sviluppatori, migliorate la funzione aggiungendo codici di errore o se non può analizzare la stringa, restituite il valore LONG_MAX + l'errore in modo che possiamo determinare cosa c'è di sbagliato. Non potete farlo ora.
Controllo del codice dello script:
#property script_show_inputs
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
input string value="05";
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
const long iValue=StringToInteger(value);
Print("iValue = ",iValue,", lastError = ",GetLastError());
}
//+------------------------------------------------------------------+
Implementate la vostra versione della funzione - non dovrebbe richiedere più di 10 minuti.
Non cambieremo il comportamento delle funzioni del sistema.
Implementate la vostra versione della funzione - non dovrebbe richiedere più di 10 minuti.
Non cambieremo il comportamento delle funzioni del sistema.
Quindi non pensi che sia necessario raffinare le funzioni, specialmente le funzioni che possono ovviamente mentire?
Anche se aggiungessimo solo dei codici di errore, sarebbe ok, ma ora state suggerendo di reinventare la ruota. Non una complicata, naturalmente, ma una bicicletta.
Quindi non pensi che sia necessario raffinare le funzioni, specialmente le funzioni che possono ovviamente mentire?
Anche se si aggiungessero solo i codici di errore, andrebbe bene, ma ora si sta proponendo di reinventare la ruota. Non una complicata, naturalmente, ma una bicicletta.
Errore di compilazione
struct S {};