Vim como ide para mql - página 7

 
Maxim Kuznetsov:

si lo he entendido bien, ¿todavía hay que usar guardias y hay algunos requisitos especiales del código?

En nuestros propios archivos de cabecera sí, necesitamos guardas. Primero pasamos por la manguera, se hace un gran lío con todos los ganchos y esto va al compilador µl. Sin guardas, las definiciones se repetirán y el compilador µl generará errores.

A partir de los requisitos del código, sí sólo uno en principio - empaquetamos las directivas específicas µl del preprocesador de la siguiente manera

#ifndef  VIM
mqlcpp_#import  jkjkjk.dll
#endif
void fn_from_jkjkjk_dll();

Para que clang no tropiece con esta importación durante el análisis y la compilación. Si mql es una construcción específica, pero no una directiva del preprocesador, entonces sin mqlcpp_ (no es necesario, pero desde el punto de vista de clang esto es una especie de error).

#ifndef  VIM
input int            MA_Period=13; // Ну или INPUT макрос
input int            MA_Shift=0;
#else
int            MA_Period=13;
int            MA_Shift=0;
#endif

Si se hace referencia a los punteros con -> y se pone & antes de los arrays es a elección, pero seguir el estilo de C++ dará mejor soporte de clang.

HH: por cierto, no le dijo cómo se define "primera compilación" en el contexto de la adición de guardias. Mira Include/Object.mqh y si no encontramos una guardia allí, entonces compila primero. También me gustaría añadir la posibilidad de formar una lista negra de ladrones tontos.
 
Vict:

...

En general, tus preguntas son erróneas, más interesantes - he hecho un ide en un par de días de rodillas con todas las bondades y mucha más calidad que el meta-editor...

Sí... Con capacidades así es fácil escribir un sistema operativo en una semana). A veces me gusta embellecer, pero tanto...)

¿Tal vez sea un marco disponible públicamente, que permita construir software a nivel de puzzle? Bueno, entonces cada uno puede construir su propio IDE a su gusto y utilizarlo).

En un par de días...
 

Leer, leer....

Cansado de ver a estos fanfarrones.

Todos esos trucos no son necesarios para un trader que está escribiendo una estrategia de trading para sí mismo.

Y más aún en el caso de los pedidos personalizados, ya que son sobre todo los principiantes quienes los encargan. Hay órdenes de inocencia infantil, que se implementan en unas pocas líneas de código.

Por supuesto, me ha gustado el hecho de que se haya previsto la compatibilidad con python.

Es un complemento muy útil.

 
Vict:

...Los demás seguiremos rezando al MC, poniendo obedientemente ampersands delante de los arrays y desreferenciando mediante un punto.

En cuanto al punto, es más cómodo y lacónico, además de la compatibilidad con los lenguajes OOP. Por el contrario, muchas veces he pensado que sería bueno tener la misma característica en C++. Por supuesto, hay un inconveniente, pero creo que hay más ventajas.
 
Реter Konow:
¡Exactamente! Cuántos nombres de variables y funciones han cambiado así. Un poco más largo que en VS, pero con más control.
No confunda la sustitución automática regular del texto en un archivo con la sustitución sensible al contexto.

 
Alexey Navoykov:
En cuanto al punto, es más conveniente y lacónico, además de la compatibilidad con los lenguajes OOP. Por el contrario, muchas veces pensé que sería bueno implementar la misma característica en C++. Por supuesto, hay un inconveniente en esto, pero hay más ventajas, creo.

Entonces tendrías que tirar los punteros inteligentes, los iteradores, . . Hay que distinguir de alguna manera entre una llamada a la función del propio puntero y el tipo al que se apunta.

unique_ptr<type> ptr(...);
ptr->call_referenced();
ptr.release();

Un punto no puede ser sobrecargado, es decir, el acceso a los internos está garantizado.

Renat Akhtyamov:

Y más aún a la hora de hacer un pedido, ya que la mayoría son principiantes. Son órdenes de inocencia infantil, que se implementan en unas pocas líneas de código.

Me importan un bledo los pedidos, escribo para mí y para compartir mis conocimientos con los demás, no para algunos mercaderes.

 
Vict:

Entonces tendrías que tirar los punteros inteligentes, los iteradores, . . Hay que distinguir de alguna manera entre una llamada a la función del propio puntero y el tipo al que se apunta.

Un punto no puede ser sobrecargado, es decir, el acceso a los internos está garantizado.

Bueno, tampoco se puede sobrecargar -> en MQL. Por eso la diferencia está fuera de lugar.
Por cierto, ¿es posible emular esta sobrecarga en Vim?
 
Alexey Navoykov:
No confunda la auto-sustitución regular de texto en un archivo con la sustitución por contexto.

¿Y para qué sirve? ¿En caso de que variables con contextos diferentes tengan el mismo nombre en el mismo archivo? ¿Sustitución por significado, no por texto? Por favor, aclare dónde y por qué debe utilizarse. De repente, todo el mundo lo necesita y algunos no lo saben.

Zy. Google tampoco conoce esta sustitución...
 
Реter Konow:
¿Y para qué sirve? ¿En caso de que variables con contextos diferentes tengan el mismo nombre en el mismo archivo? ¿Sustitución por significado, no por texto? Por favor, explique dónde y por qué utilizarlo. De repente, todo el mundo lo necesita, y algunos no lo saben.
Bueno, en principio tienes razón.
 
Alexey Navoykov:
Bueno, en principio tienes razón.
Si lo haces bien, es una cosa de archirrivales. ))