Errores, fallos, preguntas - página 1369

 
Alexander Laur:
La pregunta es: ¿es posible el arbitraje en el mercado de divisas?
))) "¿Y crees en el dickfix?"
 
Un argumento importante para la introducción de * (que no se ha expresado antes) puede ser el siguiente:
class A { public:
        virtual bool    operator==( A& ) { Print(__FUNCSIG__); return true; }
        virtual bool    operator==( A* ) { Print(__FUNCSIG__); return true; }
};
void today( A *a, A *b )
{
        a == b;            //сравниваются указатели на равенство
        a.operator==( b ); //вызывается a.operator( A* )
//нет синтаксиса вызова a.operator( A& )
}

por lo que no se puede llamar a.operator( A& ) ni siquiera explícitamente, lo que es significativo

En este caso, la introducción de * junto con la colocación de la operación de comparación de punteros en una función separada (quizás una función del sistema) resolverá todas las ambigüedades existentes
void future( A *a, A *b )
{
        a == b;         //вызывается a.operator( A* )
        a == *b;        //вызывается a.operator( A& )
        ::IsEqualPointer( a, b ); //сравниваются указатели на равенство
}
Si era óptimo, se convertirá en ideal.

Hemos añadido los operadores *(Dereferencia/Inderección) y &(Dirección-de), no vamos a hacer ningún cambio adicional en el lenguaje
A *a,*b;

 a== b;   // сравнение "указателей"
*a== b;   // вызов оператора ==(A *)
 a==*b;   // вызов оператора ==(A &)

// для операции != аналогично

// операция & - эквивалент(короткая запись) вызову GetPointer
 
Ilyas:
Añadidos los operadores *(Dereferencia/Inderección) y &(Dirección-de)
¡Genial!
 
Ilyas:

Se han añadido los operadores *(Dereferencia/Inderección) y &(Dirección-de), no se harán/planean cambios adicionales en el lenguaje
¿Esto es sólo en MQL5 o también en MQL4?
 
Konstantin Karpov:
¿Esto es sólo en MQL5 o se ha añadido a MQL4 también?
Añadido a ambos idiomas. Lamentablemente, no aparecerá en la próxima compilación.
 
Hace poco hice esta pregunta, pero no hubo comentarios de los promotores. ¿Está previsto, o debería hacer una encuesta en el foro sobre si esta característica es necesaria?
 
Alexey Navoykov:
Hace poco hice esta pregunta, pero no hubo comentarios de los promotores. ¿Está previsto, o debería hacer una encuesta en el foro sobre si esta función es necesaria?
Esta cuestión está en estudio.
 
Aquí hay otro inconveniente. Cuando intentamos implementar algo como esto
a.b().c().d();

después del primer par de corchetes, la lista de auto-sustitución con los nombres de los miembros de la clase deja de aparecer, y todo el texto posterior tiene que ser escrito completamente a mano/a ciegas.

 
Alexey Navoykov:
Aquí hay otro inconveniente. Al tratar de implementar algo como esto:

entonces, después del primer par de paréntesis, la lista de auto-sustitución con los nombres de los miembros de la clase deja de aparecer, y todo el resto del texto tiene que ser escrito completamente a mano/a ciegas.

Estaría bien añadir al depurador una pista sobre el tipo de variable utilizada, como en todos los IDEs avanzados
 

boolFileIsExist(
const stringnombre_archivo,//nombre_archivo
intcommon_flag=0// zona de búsqueda
);

El archivo que se comprueba puede ser un subdirectorio. En este caso FileIsExist() devolverá false, y el error 5018 se escribirá en la variable _LastError - "Esto no es un archivo, sino un directorio". (véase el ejemplo de la función FileFindFirst).

El 5018 no funciona en las subcarpetas/subdirectorios

Por ejemplo, si

y el ejemplo https://www.mql5.com/ru/docs/files/filefindfirst tendría

input string InpFilter="Dir1\\*"

el resultado sería

y debería ser 1: Directorio = Dir2\.

Документация по MQL5: Файловые операции / FileFindFirst
Документация по MQL5: Файловые операции / FileFindFirst
  • www.mql5.com
Файловые операции / FileFindFirst - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5