2. Nenhuma mensagem de "memória vazada" (nova sem apagar)
Correctamente dito sobre a optimização do RVO (também existe NRVO), actualmente não está no compilador MQL, mas será adicionado no futuro (por agora consideramos esta optimização como uma tarefa não prioritária).
não se reproduz, por favor verifique duas vezes, pode não ter especificado detalhes importantes para a reprodução.
Obrigado pelo esclarecimento. Reproduzido - sem mensagem de fuga e aqui está o porquê:
O optimizador está aqui sobre-optimizado, uma vez que não existem operações na memória ou no ponteiro que foram criadas no novo operador, a atribuição desta memória foi removida.
Vamos considerar se devemos corrigir este "bug" no optimizador ou melhorá-lo de modo a que guardar um ponteiro numa variável não utilizada não bloqueie a eliminação da nova operação.
Boa tarde. Por favor informe os programadores porque é que a MQL4 e a MQL5 têm a função de remover uma subjanela indicadora de um Expert Advisor, enquanto não têm a função de criar uma janela indicadora. Tenho de utilizar modelos ou iniciar manualmente o indicador da janela, o que não é conveniente porque a informação no gráfico se perde. Também gostaria de poder iniciar e exibir indicadores a partir de um ficheiro de recursos. Ou aconselhar como o fazer.
voidOnStart()
{
double dPrice = 1.08249;
int iPrice = (int)((dPrice / _Point) + 0.1);
double dNewPrice = iPrice * _Point; // При этом нормализации это значение не требует в OrderSendif (dPrice != dNewPrice)
Print((string)(dPrice - dNewPrice));
}
Se abrir uma encomenda no Ponto * Inteiro (sem normalização) e depois solicitar o preço de abertura, este será diferente do Ponto * Inteiro não normalizado.
Porque é que a OrderSEnd utiliza SEMPRE preços inteiros não normalizados * Pontos?
Estou a fazer uma macro que quero que MACROS(Num) seja substituída por "Num", mas acaba sempre por "##A####". É possível definir uma macro para obter o que quero?
Retirar as vírgulas invertidas do corpo da macro
Para converter um parâmetro macro para uma cadeia, usar #:
1. Cinco ou quatro? Vou adivinhar um quatro. Basta aumentar a janela de teste.
2. tomá-lo e testá-lo
Haha, muito obrigado (mt4)
1366 x 768 (( um terço do ecrã precisa de ser esticado.
A sua habilidade de clarividência está ao nível.
Vamos tomar um exemplo mais fácil
Em termos formais, quantas chamadas do tipo A( A& ) existem? Um. Pelo menos C++ não cria nenhum objecto intermédio
1. Dupla chamada do construtor da cópia
2. Nenhuma mensagem de "memória vazada" (nova sem apagar)
Exemplo simplificado
Resultado:
2016.08.15 14:17:39.093 Roteiro1 (GBPUSD,M15) A::A
Conclusão: nenhum destruidor é chamado e nenhuma mensagem de fuga de memória ao mesmo tempo (como no exemplo seguinte)
Resultado:
2016.08.15 14:26:27.993 Roteiro2 (GBPUSD,M15) 16 bytes de memória vazada
2016.08.15 14:26:27.993 Roteiro2 (GBPUSD,M15) 1 objecto de tipo A à esquerda
2016.08.15 14:26:27.993 Roteiro2 (GBPUSD,M15) 1 objectos por seleccionar
2016.08.15 14:26:27.992 Roteiro2 (GBPUSD,M15) A::A
O optimizador está aqui sobre-optimizado, uma vez que não existem operações na memória ou no ponteiro que foram criadas no novo operador, a atribuição desta memória foi removida.
Vamos considerar se devemos corrigir este "bug" no optimizador ou melhorá-lo de modo a que guardar um ponteiro numa variável não utilizada não bloqueie a eliminação da nova operação.
Por favor informe os programadores porque é que a MQL4 e a MQL5 têm a função de remover uma subjanela indicadora de um Expert Advisor, enquanto não têm a função de criar uma janela indicadora.
Tenho de utilizar modelos ou iniciar manualmente o indicador da janela, o que não é conveniente porque a informação no gráfico se perde.
Também gostaria de poder iniciar e exibir indicadores a partir de um ficheiro de recursos.
Ou aconselhar como o fazer.
Não foi você quem organizou a "dica de visualização"?
O que o faz pensar que se trata de um insecto? O nome da pasta corresponde ao número da porta em que foi feita a ligação
Fiz uma pequena descoberta para mim
Se abrir uma encomenda no Ponto * Inteiro (sem normalização) e depois solicitar o preço de abertura, este será diferente do Ponto * Inteiro não normalizado.
Porque é que a OrderSEnd utiliza SEMPRE preços inteiros não normalizados * Pontos?
Retirar as vírgulas invertidas do corpo da macro
Para converter um parâmetro macro para uma cadeia, usar #:
#define MACROS(A) #A## é usado para concatenar fichas