Erros, bugs, perguntas - página 2682
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
MT5 bug (build 2367) As prioridades de execução das funções do modelo em MQL não correspondem às do C++ (online: https://onlinegdb.com/B172m1PLL).
Parece que como parte da correcção do bug, o bug de compilação é corrigido, mas a prioridade de execução de funções de modelo sobrecarregadas ainda não está alinhada com o comportamento de C++.
Deparei-me com um problema engraçado. É impossível passar um tipo de modelo com vários tipos-parâmetros para uma macro, porque o pré-processador não sabe que lida com um modelo e considera os parâmetros por vírgulas.
Encontrei a descrição do problema e a sua solução para C++ no SO.
Experimentei-o em MQL, mas infelizmente não funcionou. O compilador dá um erro "identificador não declarado" para uma variável descrita pelo tipo passado.
Até agora, consegui com uma classe derivada adicional, mas posso corrigi-la como em C++?
Oops. Encontrei uma solução. É assim que funciona:
#define COMMA() ,
A questão é eliminada.MT5 bug (build 2367) localização de funções de modelo sobrecarregadas afecta o resultado da compilação.
O bilhete original sob o qual o trabalho foi feito -https://www.mql5.com/ru/forum/1111/page2655#comment_15119627
C++ online(https://onlinegdb.com/BJzbH2DLL).
Defeitos na função do modelo/na operação de cache da classe:
(fixado por MT5(build 2368)) ***(para cima) Comportamento indefinido, cria-se várias vezes um objecto complexo embrulhado com tipo interno "C" e acaba por ser um tipo de dados completamente diferente, talvez "B", talvez "int", o que se quiser...
(fixado por MT5(build 2368)) * Compile Error, bug ao passar um ponteiro de função como um argumento de modelo de ref. constante.
(fixado por MT5(build 2368)) * Compile Error, o objecto B<int> pode ser criado após o objecto B<void*>, mas um erro de compilação ocorre se for feito antes.
Defeitos na função/classe de trabalho do modelo:
(fixado por MT5(build 2368)) ***(para cima) Erro de Compilação, erro dentro da função de modelo, ponteiro passado dentro dotipo de conversão explícita comporta-se como uma classe, caso contrário.
(fixado por MT5(build 2368)) **(para cima) Erro de Compilação, erro ao tentar aceder à classe interna para um parâmetro de modelo de uma função de modelo.
(não fixado por MT5(build 2368)) *** Compile Error, a queixa principal é um aviso de saída inadequado - "comportamento depreciado, chamada de método oculto será desactivado numa futura versão do compilador MQL". A implementação actual é disparar aves com uma pena.
(não fixado por MT5(build 2368)) ** Compile Error, o erro diz respeito ao valor de retorno de uma função de modelo quando o valor de retorno é uma classe interna dentro de uma classe de modelo cujo tipo de parâmetro é definido pelo tipo de argumento da função de modelo.
(não fixado por MT5(build 2368)) ** Erro de compilação, espaço de nomes e bug de âmbito no construtor do modelo quando se chama uma classe base quando o mesmo nome de classe é usado na herança e na classe interna.
(não fixado por MT5(build 2368)) * Erro de Compilação, erro na chamada da função modelo com tipos de argumentos explícitos quando chamada de uma função não modelo sobrecarregada.
(não corrigido por MT5(build 2368)) Erro de compilação, bug na definição de classe interna - nenhuma referência ao espaço de nomes global ao definir uma classe base.
(fixado por MT5(build 2368)) ** Compile Error, bug com geração de código de classe modelo quando se utiliza classe interna.
(fixado por MT5(build 2368)) ** Compile Error, bug na geração do método/classe do modelo, o processo de substituição automática do parâmetro do modelo está fora do scop para o código principal do programa.
(fixado por MT5(build 2368)) * Erro de compilação, erro com ausência de código de classe de template autogerado quando a classe de template actua como valor de retorno para o método de template.
(fixado por MT5(build 2368)) * Erro de compilação, erro na passagem da estrutura interna para a função modelo, otipo de dados resultante não pode ser utilizado como o tipo de dados base para outra estrutura interna na classe modelo.
(fixado por MT5(build 2368)) * Compile Error, a verificação de nomes de tipos de modelos reutilizados não é executada quando se declara uma função de modelo dentro de uma classe de modelo, o que leva a um comportamento inesperado.
(fixado por MT5(build 2368)) Erro de Compilação, defeitos múltiplos relacionados com o retorno do objecto "no local criado" quando o objecto é uma classe/estrutura de modelo.
(não fixado por MT5(build 2368)) *( Não é um bug, é uma característica) no construtor da classe base é impossível realizar previsões datilográficas explícitas na conversão de ponteiro para objecto da classe base para ponteiro para classe pai.
Defeitos relacionados com a inconsistência nas prioridades das chamadas de funções sobrecarregadas em MQL vs C++:
(fixado por MT5(build 2368)) **(para cima) Erro de Compilação, a prioridade de chamada de funções de modelo sobrecarregadas depende efectivamente do tipo de parâmetro do modelo, o que teoricamente não afecta o resultado da compilação.
(fixado por MT5(build 2368)) **(acima) Erro de Compilação quando a primeira função de modelo sobrecarregada utiliza uma classe base de modelo totalmente especializada e a segunda utiliza uma classe base de modelo não especializada.
(não fixado por MT5(build 2368)) ** Compile Error, ocorre um erro de compilação ao gerar código para uma função de modelo, apesar de haver uma função de modelo sobrecarregada com uma assinatura adequada para os parâmetros passados.
(não fixado por MT5(build 2368)) * Erro de Compilação, "chamada ambígua para função sobrecarregada" quando funções de modelo sobrecarregadas com diferentes números de parâmetros de modelo são chamadas.
(fixado por MT5(build 2368)) *** Erro de compilação ao herdar classes A <= B <= C <= D e implementar duas funções de sobrecarga, por exemplo, uma com o parâmetro A* e a segunda com o parâmetro B*, passando depois um objecto C* ou D* em tal função no MQL causa um erro de compilação "chamada ambígua para função sobrecarregada".
(fixado por MT5(build 2368)) ** Tempo de execução, desajuste prioritário para chamadas de funções de modelo sobrecarregadas.
Defeitos relacionados com a execução lenta de funções, desempenho do optimizador de código:
(fixado por MT5(build 2368)) ** Tempo de execução, grande sobrecarga ao adicionar um elemento de cada vez a uma matriz usando o ArrayResize, apesar de a memória para eles ter sido reservada, por exemplo, as estruturas são até 7 vezes mais lentas.
Sugestões:
(novo) link - sobre a implementação de suporte intellisense para a funcionalidade namespace baseada no trabalho intellisense para métodos estáticos em classes.
link- para permitir que os literais e variáveis temporárias sejam passados como argumentos da função const ref.
link- aomover ficheiros de projectos no separador Projecto, para ficheiros movidos que estão abertos e nos separadores ME, para actualizar automaticamente o seu caminho de localização.
link- para introduzir a funcionalidade de declaração de typedef em MQL.
link- sobre a possibilidade de forçar a geração de construtores de cópias por defeito e operadores de atribuição.
Tudo funcionava antes, aparentemente algo se partiu como parte da reparação de outros insectos.
erro de compilação do bug MT5 (build 2368) ao chamar a declaração de atribuição através da indicação explícita da classe base. O problema ocorre parauma classe de modelo com parâmetro de modelo como classe base.
Funcionou antes, aparentemente algo se partiu como parte da reparação de outros insectos.
Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial
Insectos, insectos, perguntas
fxsaber, 2020.03.22 10:04
mq5 está ok. O mq4 está partido. Pode tomar TypeToBytes_ExampleScript.mq4 a partir daqui. Só se compila se alterar a extensão para mq5.
2368 - nada mudou.
Através de um terminal MT5 podia sempre entrar na conta de qualquer corretor. Se houvesse um problema com o primeiro login, eu simplesmente usava as ferramentas do Terminal para procurar o corretor apropriado, obtendo automaticamente os dados dos seus servidores comerciais. Depois disso, poderia iniciar sessão sem qualquer problema.
Hoje enfrentei pela primeira vez uma situação (novo corretor), que nada ajuda. Não consigo iniciar sessão. Em registos escreve.
Descarreguei o terminal nativo do corretor - inicie imediatamente a sessão. O meu terminal de investigação - nem pensar. Pela primeira vez, tal.
Pode dizer-me como fazer com que um terminal não nativo seja capaz de se ligar à conta de negociação?
Pode dizer-me como fazer com que um terminal não nativo seja capaz de se ligar a uma conta de negociação?
Em mt4 tive de copiar ficheiro server.ini para outro terminal, para não ter de procurar servidores comerciais
não sei em mt5