Vim como ideal para mql - página 7

 
Maxim Kuznetsov:

se eu entendi corretamente, ainda devemos usar guardas e há alguns requisitos especiais de código ?

Em nossos próprios arquivos de cabeçalho sim, precisamos de guardas. Nós passamos primeiro pela mangueira, ela faz uma grande confusão de todos os ganchos e isto vai para o compilador µl. Sem guardas, as definições serão repetidas e o compilador de µl irá gerar erros.

Dos requisitos do código, sim apenas um em princípio - embalamos as diretivas μl específicas do pré-processador da seguinte forma

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

Para que o barulho não tropece nesta importação durante a análise e a compilação. Se mql é uma construção específica, mas não uma diretiva para o pré-processador, então sem mqlcpp_ (você não precisa, mas do ponto de vista do clang é algum tipo de erro).

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

Se desreferenciar apontadores com -> e colocar & antes de arrays é a escolha certa, mas seguir o estilo C++ dará melhor suporte do clang.

HH: a propósito, não lhe disse como se define "primeira compilação" no contexto da adição de guardas. Veja Include/Object.mqh e se não encontrarmos um guarda lá, então compile primeiro. Gostaria também de acrescentar a capacidade de formar uma lista negra para ladrões burros.
 
Vict:

...

Em geral, suas perguntas estão erradas, mais interessantes - fiz uma idéia em alguns dias de joelhos com todas as guloseimas e muito mais qualidade do que o meta-editor...

Sim... Com capacidades como essa, é fácil escrever um sistema operacional em uma semana). Às vezes eu gosto de embelezar, mas tanto assim...)

Talvez seja uma estrutura publicamente disponível, que lhe permita construir software a nível de quebra-cabeças? Bem, então cada um pode construir sua própria IDE ao seu gosto e usá-la).

Daqui a uns dias...
 

Leia, leia....

Cansado de olhar para estes exibicionistas.

Todos esses truques não são necessários para um comerciante que está escrevendo uma estratégia comercial para si mesmo.

E ainda mais para pedidos personalizados, pois são principalmente os iniciantes que fazem pedidos. As ordens lá são de uma série de inocência infantil, que são implementadas em algumas linhas de código.

É claro que eu gostei do fato de que o apoio python está planejado.

É uma melhoria bastante útil.

 
Vict:

...O resto de nós continuará a rezar ao MC, colocando devidamente amperandas em frente a arrays e desreferenciando através de um ponto.

Quanto ao ponto, é mais conveniente e lacônico, mais compatibilidade com os idiomas OOP. Pelo contrário, muitas vezes pensei que seria bom ter a mesma característica no C++. É claro que há um lado negativo, mas acho que há mais vantagens.
 
Реter Konow:
Exatamente! Quantos nomes de variáveis e funções mudaram dessa forma. Um pouco mais longo do que em VS, mas mais controle.
Não confunda a substituição automática regular de texto em um arquivo com a substituição sensível ao contexto.

 
Alexey Navoykov:
Quanto ao ponto, é mais conveniente e lacônico, mais compatibilidade com os idiomas OOP. Pelo contrário, muitas vezes pensei que seria bom implementar o mesmo recurso em C++. É claro que há um lado negativo nisso, mas há mais vantagens, acho eu.

Então você teria que jogar fora os indicadores inteligentes, os iteradores, . . Deve-se distinguir de alguma forma entre uma chamada de função do próprio ponteiro e o tipo que está sendo apontado.

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

Um ponto não pode ser sobrecarregado, ou seja, o acesso aos internos é garantido.

Renat Akhtyamov:

E ainda mais ao fazer o pedido, já que são principalmente os iniciantes que fazem o pedido. São ordens de inocência infantil, que são implementadas em algumas linhas de código.

Não quero saber de ordens, estou escrevendo por mim mesmo e compartilhando meus conhecimentos com outros, não com alguns marqueteiros.

 
Vict:

Então você teria que jogar fora os indicadores inteligentes, os iteradores, . . Deve-se distinguir de alguma forma entre uma chamada de função do próprio ponteiro e o tipo que está sendo apontado.

Um ponto não pode ser sobrecarregado, ou seja, o acesso aos internos é garantido.

Bem, também não se pode sobrecarregar -> em MQL. É por isso que a diferença está fora de questão.
A propósito, é possível imitar esta sobrecarga em Vim?
 
Alexey Navoykov:
Não confunda a auto-substituição regular de texto em um arquivo com a sub-substituição de contexto.

E para que serve? No caso de variáveis com contextos diferentes terem o mesmo nome no mesmo arquivo? Substituição por significado, não por texto? Por favor, esclareça onde e por que ele deve ser usado. De repente, todos precisam disso e alguns não sabem.

Zy. O Google também não sabe sobre essa substituição...
 
Реter Konow:
E para que serve? No caso de variáveis com contextos diferentes terem o mesmo nome no mesmo arquivo? Substituição por significado, não por texto? Por favor, explique onde e por que utilizá-lo. De repente, todos precisam dele, e alguns não sabem.
Bem, em princípio, você acertou.
 
Alexey Navoykov:
Bem, em princípio, você acertou.
Se você acertar, é uma coisa de arqui-rival. ))