Il codice mostra un BAG in cui una condizione non può essere inserita, ma innesca comunque un breakpoint in un punto completamente diverso del codice. Altre domande?
L'ottimizzatore di codice ha buttato via tutto e la funzione è rimasta vuota.
Il punto di interruzione si è spostato alla fine della funzione e si è attivato.
È stato l'ottimizzatore di codice che ha buttato via tutto e ha lasciato la funzione vuota. Il punto di interruzione si è spostato alla stessa fine della funzione e ha funzionato.
Mi sono un po' eccitato con il primo esempio, sono d'accordo. Ma che dire del secondo? Bene, il punto di interruzione rimane all'interno della condizione e non si sposta da nessuna parte. L'attivazione di un punto di interruzione induce l'utente a pensare che la condizione di ingresso sia stata soddisfatta, quando in realtà potrebbe non esserlo affatto:
class A{
public:
bool m_flag;
A* m_next;
A(bool flag) : m_flag(flag){}
void test(){
if(m_flag){
printf("1");
m_next = m_next; // Вручную установленная точка останова срабатывает как для false так и true условий//m_next = &this; // Ok
}
}
};
voidOnStart(){
{A a(false); a.test();} // Result: breakpoint Expected result:
{A a(true); a.test();} // Result: printf + breakpoint Expected result: printf + breakpoint
}
MT5 (build 2460) qualcosa si è rotto quando si usa l'ereditarietà dalle classi template, nelle versioni precedenti inclusa la build 2450 tutto funzionava.
namespace NameSpace{
struct A{};
template<typename T>
struct B : public A{}; // 'A' - declaration without type
};
struct D : public NameSpace::B<int>{
int data;
};
voidOnStart(){
D d;
}
Perché inOBJ_TRENDBYANGLE non possiamo conoscere l'angolo programmaticamente?
Possiamo impostare programmaticamente il tempo e i prezzi dei due punti, ma l'angolo restituisce 0.
Se spostiamo manualmente OBJ_TRENDBYANGLE, viene restituito il valore dell'angolo normale.
Voglio semplicemente mettere del testo sulla linea di tendenza con lo stesso angolo della linea di tendenza stessa.
Ma la linea di tendenza non restituisce l'angolo, mentre OBJ_TRENDBYANGLE ha una seconda coordinata fissa e quando la scala del grafico cambia a causa dell'aumento o della diminuzione del prezzo, otteniamo informazioni false...
Структура является набором элементов произвольного типа (кроме типа void). Таким образом, структура объединяет логически связанные данные разных типов. Объявление структуры Имя структуры нельзя использовать в качестве идентификатора (имени переменной или функции). Следует иметь ввиду, что в MQL5 элементы структуры следуют непосредственно друг...
Il codice mostra un BAG in cui una condizione non può essere inserita, ma innesca comunque un breakpoint in un punto completamente diverso del codice.
Altre domande?
L'ottimizzatore di codice ha buttato via tutto e la funzione è rimasta vuota.
Il punto di interruzione si è spostato alla fine della funzione e si è attivato.
È stato l'ottimizzatore di codice che ha buttato via tutto e ha lasciato la funzione vuota.
Il punto di interruzione si è spostato alla stessa fine della funzione e ha funzionato.
Mi sono un po' eccitato con il primo esempio, sono d'accordo.
Ma che dire del secondo? Bene, il punto di interruzione rimane all'interno della condizione e non si sposta da nessuna parte.
L'attivazione di un punto di interruzione induce l'utente a pensare che la condizione di ingresso sia stata soddisfatta, quando in realtà potrebbe non esserlo affatto:
Il punto di interruzione si è spostato alla stessa fine della funzione e ha funzionato.
Non pensate che questo sia un bug?
C++ online:https://onlinegdb.com/S1E503pj8
Forum sul trading, sistemi di trading automatico e test di strategia
Domande OOP in MQL5
fxsaber, 2020.05.30 10:04
Ho ottenuto un risultato inaspettato.Perché inOBJ_TRENDBYANGLE non possiamo conoscere l'angolo programmaticamente?
Possiamo impostare programmaticamente il tempo e i prezzi dei due punti, ma l'angolo restituisce 0.
Se spostiamo manualmente OBJ_TRENDBYANGLE, viene restituito il valore dell'angolo normale.
Voglio semplicemente mettere del testo sulla linea di tendenza con lo stesso angolo della linea di tendenza stessa.
Ma la linea di tendenza non restituisce l'angolo, mentre OBJ_TRENDBYANGLE ha una seconda coordinata fissa e quando la scala del grafico cambia a causa dell'aumento o della diminuzione del prezzo, otteniamo informazioni false...
Perché il compilatore dà un avvertimento ?
UPD: no
int ArrayInitialize( uchar array[], uchar value );
non è conveniente scrivere
Codice 401 - qual è l'errore?
cosa c'è?
401
L'ereditarietà da questa classe è impossibile perché è dichiarata con lo specificatore final
Perché il compilatore dà un avvertimento ?
UPD: no
int ArrayInitialize( uchar array[], uchar value );
non è conveniente scrivere
0xFF è probabilmente trasformato in 4 byte dal compilatore.
Codice 401, qualcuno può dirmi cos'è questo errore?
trovato
401
L'ereditarietà da questa classe è impossibile perché è dichiarata con lo specificatore final
Qual è la domanda - non c'è un modificatore finale, ma c'è un errore, o cosa?