Erros, bugs, perguntas - página 881

 
sergeev:
quantos conhece?
Gerido para adicionar mais algumas classes - mas depois voltou a acontecer - tentando localizar o problema - herança bastante complexa e sobrecarga - irá reportar
 
A100:
Gerido para adicionar mais algumas classes - mas depois tudo se repetiu - tentando localizar o problema - herança bastante complexa e sobrecarga - irá reportar
Nenhum nome idêntico com #define functions?
 
sergeev:
c #define nenhum nome idêntico com funções?
Os sintomas ocorreram da seguinte forma: em algum momento, adicionando qualquer novafunção virtual à classe, incluindo o tipo mais simples
virtual bool ABC12345() const { return ( true ); }

começou a causar um erro: "," - ficha inesperada..., com uma referência a uma linha noutra classe - muito antes da adição especificada, onde antes não havia erros e ex5 funcionava bem. Ao mesmo tempo, uma adição semelhante sem a palavra-chave virtual não causou erros. A alteração de nomes, parâmetros - não teve qualquer efeito. Depois tentei acrescentar apenas - uma classe simples (sem o acima mencionado)

class A {};

mesmo erro. O paradoxo, mas depois de adicionar a 7ª classe simples o erro desapareceu. E não foram os nomes das classes que tiveram um efeito, mas apenas o seu número. Mas ao acrescentar o exemplo com virtual, o erro voltou a ocorrer. A partir de #define havia apenas

#define PrintNotEmpty( a, b )   _PrintNotEmpty( b, a )
A análise revelou que dentro da função, utilizando um modelo de variável, anteriormente declarada como const string estática, esta pode ter sido a razão - após a substituição por const string o erro desapareceu e não está a ocorrer agora.
 

O código adicionado - o mesmo erro voltou a aparecer - pode ser corrigido adicionando uma classe vazia

class B {};
Aparentemente, existe um número crítico deles
 

Último resultado: as conclusões anteriores não são correctas

Para fazer o erro desaparecer - basta adicionar qualquer linha significativa (e não um comentário) em qualquer lugar em mq5, por exemplo

#define XXXXXXXXXXXXX 15
As funções virtuais no ex5 estão, até agora, a funcionar bem. O mq5 problemático foi guardado até à próxima revisão do ME5
 
É melhor enviar o ficheiro do problema para o cd. Seria mais útil.
 
Dentro de um mês :) a tempo do Natal
 
sergeev:
É melhor enviar o ficheiro do problema para o cd. Faria mais sentido.
Este erro já foi detectado e corrigido.
 
mql5:
Este erro já foi detectado e corrigido.

 

Pergunta: é documentado o atraso min (mínimo requerido) entre chamadas

        OrderSend( request, result );
        Sleep( n );
        bool isOK = OrderSelect( result.order );
A questão tem a ver com o facto de que quando n = 0 -> isOK = falso, e quando n = 200 -> isOK = verdadeiro