错误、漏洞、问题 - 页 2474

 
fxsaber:

你如何在使用模板和void*之间做出选择?

没有什么特别的方法,这只是一个直觉的问题

 
不幸的是,目前MT4/MT5的功能指针类型非常有限,由于一些缺陷,并不实用。
#(未在MT5(build 2060)中修复)"在typedef中重复使用相同的函数签名时出现编译错误"
#(未在MT5(build 2060)中修复)"当使用typedef时,使用具有明确专业化的模板函数不会为该模板函数生成代码"。


鉴于命名空间的实施尚未完成,请考虑在下一个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.
}
 

嗨!请注意该主题

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

简而言之,测试器计算出的保证金与符号设置中的保证金不一致
[bug] Неправильная Margin при тестировании на custom symbol
[bug] Неправильная Margin при тестировании на custom symbol
  • 2019.05.25
  • www.mql5.com
Привет! Создал кастомный символ с параметрами, скопированными из реального Si-3.19. См. скриншоты. Загрузил для него историю...
 

关于交易、自动交易系统和策略测试的论坛

新版本的MetaTrader 4 build 1170平台

fxsaber, 2019.05.28 12:10

这是不是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
}


在MT5中没有这方面的问题。在MT4中,没有办法对函数进行过载。

 

在MT 4中的轻微失误在MT 5中没有检查...


 

关于交易、自动交易系统和策略测试的论坛

新版本的MetaTrader 4 build 1170平台

fxsaber, 2019.05.28 14:24

抓住了MT4和MT5之间一个不熟悉的差异。这是不是MT4的一个错误?
#property strict

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

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

void OnStart() {}
 
fxsaber:

五是对静力学做了适当的初始化。在第一次访问时。

有四个人没有。而且不知道我们什么时候会这样。

 

build 2062:创建自定义符号时出错5305。

在2060年,一切都很好。

我记得在MT4中,有一个命令行键/skipupdate

在MT5中是否有类似的东西?我怎样才能禁用更新?

 

fxsaber:

MT4被称为,MT5不被称为。

你似乎是在用旧的编译器编译,用现代的编译器(包含在MT5中)编译,一切都会好起来。
 
Alexey Navoykov:
看来你用的是旧的编译器,用现代的编译器(随MT5来的)编译,一切都会好的。

汇编到1966年。在MT4中尝试了2062 - 工作正常。谢谢你!

遗憾的是,没有办法击败这个