//--Вырезана часть аналогичного кода - листья дерева
} if(Variant_Tree_Sell==2)
{ //---Вырезан код, он не активируется в момент ошибки } //--Дерево на базе
активации листьев без фильтровif(Variant_Tree_Sell==3)
{ //---Вырезан код, он не активируется в момент ошибки } } int
Rez=0; if(Vektor_ZZ==1)Rez=CalcBuy; if(Vektor_ZZ==-1)Rez=CalcSell;
Print("Rez_Tree_Calc=",Rez," - f","
Vektor_ZZ=",Vektor_ZZ," CalcSell=",CalcSell); return Rez; }
Assim, esta função por vezes produz um valor de 769
2020.03.0115:54:23.500 Core 12019.11.1322:57:00 Rez_Tree_Calc=769 - f Vektor_ZZ=-1 CalcSell=769
class A{};
template<typename T>
class B{
public:
B(int &){}
B(long){}
B(int, int, int){};
B(const B&){}
B(const A*){}
};
// template class type
B<A*> test_b_class_class(){
B<A*> b(1);
int x = 22;
return( B<A*>(1)); // Fixed Compile Error: ambiguous call to overloaded function with the same parameters: "B(long)" and "B(const A*)"return( B<A*>(1,2,3)); // Fixed Compile Error: only one argument is acceptable, argument should be castable to intreturn( B<A*>(x)); // Fixed Compile Error: argument is passed by value instead of by reference.return( B<A*>((A*)NULL)); // Fixed Compile Error: 'int' - invalid cast operation return( B<B<B<long>>>(1)); // Fixed Compile Error: OK, template parameter type does not provide any effort on compilation resultreturn b;
};
B<A*>* test_b_ptr_ptr(){
B<A*> b(1);
return &( B<A*>(1)); // Fixed Compile Error: '&' - illegal operation usereturn &b;
};
voidOnStart (){
// template class type
B<A*> b0 = test_b_class_class();
B<A*>* b_ptr = test_b_ptr_ptr();
}
erro de compilação MT5 (build 2345) para o valor de retorno de uma função de modelo quando o valor de retorno é uma classe interna localizada dentro de uma classe de modelo cujo tipo de parâmetro é dado pelo tipo de argumento da função de modelo:
template<typename T>
class A{
public:
class B{
public:
B(){};
B(B&){};
};
A(){};
A(A&){}
};
class C{
public:
class D{
public:
D(){}
D(D&){}
};
};
template<typename T>
A<int>::B* test_b_ptr(const T n){ //OK
A<T>::B* ptr = new A<int>::B();
return ptr;
}
template<typename T>
A<int>::B test_b_in_place_class(const T n){ //OKreturn (A<T>::B());
}
template<typename T>
A<int>::B* test_b_in_place_ptr(const T n){ //OKreturn &(A<T>::B());
}
template<typename T>
A<T> test_a_template(const T n){ //OK
A<T> a;
return a;
}
template<typename T>
C::D test_d(const T n){ //OK
C::D d;
return d;
}
template<typename T>
A<T>::B test_b_template(const T n){ //'A' - unexpected token, probably type is missing?
A<T>::B b;
return b;
}
voidOnStart (){
test_b_ptr(1);
test_b_in_place_class(1);
test_b_in_place_ptr(1);
test_a_template(1);
test_d(1);
test_b_template(1); // Compile Error
}
Por favor copie este texto (retirado do registo do Terminal) para ME, mova o cursor para o fim da linha e tente apagar caracteres através da tecla BackSpace. Tenho um insecto reprodutível.
Na nota de animação, a posição do cursor. Carrego em BackSpace e apago caracteres que se encontram longe do cursor.
Por favor copie este texto (retirado do registo do Terminal) para ME, mova o cursor para o fim da linha e tente apagar caracteres através da tecla BackSpace. Tenho um insecto reprodutível.
ZY tudo está bem no Bloco de Notas, não em ME.
Em ME Win10-64 nenhum problema eliminado
Penso ter copiado tudo, tenho os últimos caracteres:
摴 - )\"
ZY: há um truque em ME, tenho um ficheiro fonte .mql4/mql5 de 50 KB, nos fóruns o mesmo código levará 5-6 KB, penso que o truque está na codificação Unicode-"não Unicode" - não me lembro já, onde alguém discutiu
UPD: menu ME: ficheiro - guardar como - na parte inferior da codificação, por defeito para Unicode
Por favor copie este texto (retirado do registo do Terminal) para ME, mova o cursor para o fim da linha e tente apagar caracteres através da tecla BackSpace. Tenho um insecto reprodutível.
Na animação, anotar a posição do cursor. Carrego em BackSpace e apago caracteres que se encontram longe do cursor.
Tive o mesmo insecto recentemente. Só que também perdi o cursor. Eu reiniciei o ME, não voltou a acontecer. Pensei que havia algo de errado com o Windows.
Tenho um caso difícil - não há lógica disponível para mim.
Existe uma função com estes inputs
Assim, esta função por vezes produz um valor de 769
Se descomentar a primeira impressão
//Print("Rez_Tree_Calc=",Rez," - f"," Vektor_ZZ=",Vektor_ZZ," CalcSell=",CalcSell);então dá o valor correcto.
Se truncar a função removendo apenas o código que não é activado no momento em que a função é chamada no momento do erro, não há erro também.
Obviamente um erro de compilação - os programadores, a quem enviar a função completa, porque não cabe no fórum.
Acontece que acrescentar parênteses tem um efeito miraculoso na resolução dos problemas acima descritos:
É a única forma de escrever.
// "MetaTrader 5\MQL5\Files\Reports\2020.03.01 03.43.46ExpertName (琼㹤⸱㠰㐹㰷琯㹤琼㹤⼼摴㰾摴ㄾ〮ㄹ㔷⼼摴㰾摴㈾⸹㠰ㄮ‴㈰〺㨰〰ㄮ㐱⼼摴㰾摴ㄾ〮〹㐵⼼摴㰾摴㰾琯㹤琼㹤⼼摴㰾摴㰾琯㹤琼㹤㰰琯㹤琼㹤⼼摴㰾摴㰾琯㹤琼㹤⼼摴㰾摴 - )\"Por favor copie este texto (retirado do registo do Terminal) para ME, mova o cursor para o fim da linha e tente apagar caracteres através da tecla BackSpace. Tenho um insecto reprodutível.
Na nota de animação, a posição do cursor. Carrego em BackSpace e apago caracteres que se encontram longe do cursor.
ZZY Tudo está bem no Bloco de Notas, não em ME.
Cadeia de pesquisa: Uluchshenie 012.Por favor copie este texto (retirado do registo do Terminal) para ME, mova o cursor para o fim da linha e tente apagar caracteres através da tecla BackSpace. Tenho um insecto reprodutível.
ZY tudo está bem no Bloco de Notas, não em ME.
Em ME Win10-64 nenhum problema eliminado
Penso ter copiado tudo, tenho os últimos caracteres:
ZY: há um truque em ME, tenho um ficheiro fonte .mql4/mql5 de 50 KB, nos fóruns o mesmo código levará 5-6 KB, penso que o truque está na codificação Unicode-"não Unicode" - não me lembro já, onde alguém discutiu
UPD: menu ME: ficheiro - guardar como - na parte inferior da codificação, por defeito para Unicode
UPD: ME menu : file - save as - bottom encoding , o meu padrão é Unicode
O mesmo no fundo.
Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos
Insectos, insectos, perguntas
fxsaber, 2020.03.01 16:10
Estou a tentar abrir uma animação e a prestar atenção à posição do cursor. Carrego em BackSpace e elimino os caracteres que estão longe do cursor.
Por favor copie este texto (retirado do registo do Terminal) para ME, mova o cursor para o fim da linha e tente apagar caracteres através da tecla BackSpace. Tenho um insecto reprodutível.
Na animação, anotar a posição do cursor. Carrego em BackSpace e apago caracteres que se encontram longe do cursor.
ZY No Bloco de Notas está bem, em ME não está.
Cadeia de pesquisa: Uluchshenie 012.O reinício não ajuda.