//--Вырезана часть аналогичного кода - листья дерева
} 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; }
Por lo tanto, esta función a veces produce un 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
Si se trunca la función eliminando sólo el código que no está activado en el momento en que se llama a la función en el momento del error, tampoco hay error.
Obviamente es un error del compilador - desarrolladores, a quien enviar la función completa, porque no cabe en el foro.
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();
}
Error de compilación de MT5 (build 2345) para el valor de retorno de una función de plantilla cuando el valor de retorno es una clase interna situada dentro de una clase de plantilla cuyo tipo de parámetro viene dado por el tipo de argumento de la función de plantilla:
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 (tomado del registro de la Terminal) en ME, mueva el cursor al final de la línea e intente borrar los caracteres mediante la tecla BackSpace. Tengo un error reproducible.
En la animación anote la posición del cursor. Presiono BackSpace y se borran los caracteres que están lejos del cursor.
Por favor, copie este texto (tomado del registro de la Terminal) en ME, mueva el cursor al final de la línea e intente borrar los caracteres mediante la tecla BackSpace. Tengo un error reproducible.
ZY todo está bien en el Bloc de notas, no en ME.
En ME Win10-64 no hay problema borrado
Creo que he copiado todo, tengo los últimos caracteres:
摴 - )\"
ZY: hay un truco en ME, tengo un .mql4/mql5 archivos de origen de 50 KB, en los foros el mismo código se llevará a 5-6 KB, creo que el truco está en la codificación Unicode-"no Unicode" - No recuerdo ya, donde alguien discutió
UPD: Menú ME: archivo - guardar como - en la parte inferior de la codificación, por defecto a Unicode
Por favor, copie este texto (tomado del registro de la Terminal) en ME, mueva el cursor al final de la línea e intente borrar los caracteres mediante la tecla BackSpace. Tengo un error reproducible.
En la animación, observe la posición del cursor. Presiono BackSpace y se borran los caracteres que están lejos del cursor.
Hace poco tuve el mismo error. Sólo que también he perdido el cursor. He reiniciado ME y no ha vuelto a ocurrir. Pensé que había algo mal en el Windows.
Tengo un caso difícil - no hay lógica disponible para mí.
Hay una función con estas entradas
Por lo tanto, esta función a veces produce un valor de 769
Si se descomenta la primera impresión
//Print("Rez_Tree_Calc=",Rez," - f"," Vektor_ZZ=",Vektor_ZZ," CalcSell=",CalcSell);entonces da el valor correcto.
Si se trunca la función eliminando sólo el código que no está activado en el momento en que se llama a la función en el momento del error, tampoco hay error.
Obviamente es un error del compilador - desarrolladores, a quien enviar la función completa, porque no cabe en el foro.
Resulta que añadir paréntesis tiene un efecto milagroso para resolver los problemas descritos anteriormente:
Es la única manera de escribir.
// "MetaTrader 5\MQL5\Files\Reports\2020.03.01 03.43.46ExpertName (琼㹤⸱㠰㐹㰷琯㹤琼㹤⼼摴㰾摴ㄾ〮ㄹ㔷⼼摴㰾摴㈾⸹㠰ㄮ‴㈰〺㨰〰ㄮ㐱⼼摴㰾摴ㄾ〮〹㐵⼼摴㰾摴㰾琯㹤琼㹤⼼摴㰾摴㰾琯㹤琼㹤㰰琯㹤琼㹤⼼摴㰾摴㰾琯㹤琼㹤⼼摴㰾摴 - )\"Por favor, copie este texto (tomado del registro de la Terminal) en ME, mueva el cursor al final de la línea e intente borrar los caracteres mediante la tecla BackSpace. Tengo un error reproducible.
En la animación anote la posición del cursor. Presiono BackSpace y se borran los caracteres que están lejos del cursor.
ZZY Todo está bien en el Bloc de notas, no en ME.
Cadena de búsqueda: Uluchshenie 012.Por favor, copie este texto (tomado del registro de la Terminal) en ME, mueva el cursor al final de la línea e intente borrar los caracteres mediante la tecla BackSpace. Tengo un error reproducible.
ZY todo está bien en el Bloc de notas, no en ME.
En ME Win10-64 no hay problema borrado
Creo que he copiado todo, tengo los últimos caracteres:
ZY: hay un truco en ME, tengo un .mql4/mql5 archivos de origen de 50 KB, en los foros el mismo código se llevará a 5-6 KB, creo que el truco está en la codificación Unicode-"no Unicode" - No recuerdo ya, donde alguien discutió
UPD: Menú ME: archivo - guardar como - en la parte inferior de la codificación, por defecto a Unicode
UPD: Menú ME : archivo - guardar como - codificación inferior , mi defecto es Unicode
Lo mismo en el fondo.
Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias
Bichos, errores, preguntas
fxsaber, 2020.03.01 16:10
Intento abrir una animación y prestar atención a la posición del cursor. Pulso BackSpace y borro los caracteres que están lejos del cursor.
Por favor, copie este texto (tomado del registro de la Terminal) en ME, mueva el cursor al final de la línea e intente borrar los caracteres mediante la tecla BackSpace. Tengo un error reproducible.
En la animación, observe la posición del cursor. Presiono BackSpace y se borran los caracteres que están lejos del cursor.
ZY En el Bloc de notas está bien, en ME no.
Cadena de búsqueda: Uluchshenie 012.Reiniciar no ayuda.