Erros, bugs, perguntas - página 2474

 
fxsaber:

Como escolher entre usar os modelos e anular* ?

Não há uma abordagem especial, é apenas uma questão de intuição

 
Infelizmente, neste momento os tipos de apontadores de funções em MT4/MT5 são muito limitados e não são práticos devido a alguns defeitos:
#(não fixado em MT5(build 2060))"Erro de compilação quando se utiliza a mesma assinatura de função repetidamente dentro do typedef".
#(não fixado em MT5(build 2060))"Quando se trabalha com typedef, a utilização de uma função modelo com especialização explícita não gera código para essa função modelo".


Tendo em conta a implementação do namespace pendente, por favor considere a implementação de apoio a este comportamento como parte da reparação de defeitos no próximo C++:
//#include <iostream>

template<typename T>
class A{
public:
    typedef void (*callback)(T&);   //class namespace for function pointer type
    callback f_ptr;
    T data;
};

template<typename T>
class B{
public:
    typedef void (*callback)(T&);   //class namespace for function pointer type
    callback f_ptr;
};

template<typename T>
void func(T& value){
    ++value;
}


void OnStart(){
//int main(){
    A<int> a;
    B<int> b;
    
    a.f_ptr = func<int>;      // automatic code generation of templates functions
    b.f_ptr = a.f_ptr;        // assignment operation for function pointers with the same function signatures and different function pointer types.
    
    int x = 1;
    b.f_ptr(x);
    printf("%d\r\n", x);                  //2
    printf("%d\r\n", b.f_ptr == a.f_ptr); //1     // equal operation for function pointers with the same function signatures and different function pointer types.
}
 

Olá! Por favor, preste atenção ao tema

https://www.mql5.com/ru/forum/314275

Em resumo, o testador calcula uma margem que não corresponde à margem definida nas definições do símbolo
[bug] Неправильная Margin при тестировании на custom symbol
[bug] Неправильная Margin при тестировании на custom symbol
  • 2019.05.25
  • www.mql5.com
Привет! Создал кастомный символ с параметрами, скопированными из реального Si-3.19. См. скриншоты. Загрузил для него историю...
 

Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos

Nova versão da plataforma MetaTrader 4 build 1170

fxsaber, 2019.05.28 12:10

Isto é um bug no compilador MT4?
#property strict

void Func( int &[] ) {}
void Func( int &[][2] ) {} // 'Func' - function already defined and has body

void OnStart()
{
  int Array1[];
  int Array2[][2];
  
  Func(Array1);
  Func(Array2); // 'Array2' - invalid array access
}


Não há qualquer problema com isto no MT5. Em MT4 não há forma de sobrecarregar a função.

 

Pequeno percalço em MT 4 em MT 5 não verificado...


 

Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos

Nova versão da plataforma MetaTrader 4 build 1170

fxsaber, 2019.05.28 14:24

Apanhou uma diferença desconhecida entre MT4 e MT5. Isto é um insecto no MT4?
#property strict

bool Print2( const string Str )
{
  Print(Str);
  
  return(true);
}

void Func()
{
  static bool b = Print2(__FUNCSIG__); // MT4 - вызывается, MT5 - нет.
}

void OnStart() {}
 
fxsaber:

Cinco fizeram uma inicialização adequada da estática. No primeiro acesso.

Quatro não o fizeram. E não há como saber quando o faremos.

 

build 2062: Erro 5305 ao criar um símbolo personalizado.

Em 2060 tudo está bem.

Lembro-me que em MT4 havia uma chave de linha de comando /skipupdate

Existe algo semelhante no MT5? Como posso desactivar as actualizações?

 

fxsaber:

MT4 é chamado, MT5 não é.

Parece estar a compilar com um compilador antigo, compilar com um moderno (incluído com o MT5) e tudo ficará bem.
 
Alexey Navoykov:
Parece que se está a compilar com um compilador antigo. Compilar com um moderno (vindo com o MT5) e tudo ficará bem.

Compilado até 1966. Testado 2062 em MT4 - funciona correctamente. Obrigado!

É uma pena que não haja maneira de vencer isto.