오류, 버그, 질문 - 페이지 2660

 
Igor Makanu :

ID가 필요합니다. 테스터의 로컬 에이전트, 그러한 기능이 없는 이유가 명확하지 않습니다.

 TerminalInfoString ( TERMINAL_DATA_PATH );
 

랜덤 하우스에서 헤매지 않도록 반복)

1. ChartOpen()을 열면 Expert Advisor가 작동하는 내 차트에 포커스(활동, 가시성)를 닫지 않고 어떻게 되돌릴 수 있는지 알려주십시오.

2. Bid, Ask가 Close[0] 차트의 가격과 일치하지 않는 이유를 누가 압니까? https://www.mql5.com/ru/forum/160683/page1082#comment_15152111

 
fxsaber :

네, 찾고 있었어요, 거기까지 볼 필요는 없다고 생각했어요

그래서 당신은 에이전트 번호를 얻을 수 있습니다

 string path = TerminalInfoString ( TERMINAL_DATA_PATH );
string agent = StringSubstr (path, StringLen (path)- 4 );
 

MT5 버그(빌드 2342) 호출이 오버로드된 비템플릿 함수에서 수행될 때 인수 유형의 명시적 표시와 함께 템플릿 함수를 호출할 때 컴파일 오류가 발생 합니다.

 template < typename T>
class B{
public :
   void func( const T value){
       printf ( "1\r\n" );
      func<T>(value);             //'func<int>' - ambiguous call to overloaded function with the same parameters        
   };
   
   template < typename TT>
   void func( const TT){
       printf ( "2\r\n" );
   };
   
};


void OnStart (){
   B< int > b;
   b.func( 1 );
   b.func( 1.1 );
}
 

MT5 버그(빌드 2342)는 전달된 매개변수에 적합한 서명을 가진 오버로드된 템플릿 함수가 있다는 사실에도 불구하고 템플릿 함수 코드를 생성할 때 컴파일 오류를 일으킵니다.
C++ 온라인: https://onlinegdb.com/HyxjmV-DVI

 #ifdef __cplusplus
     #include <iostream>
#endif


class C{
public :
   struct A{
       char aaa;
   };
   
   template < typename T>
   void test(A&, T&, T&, void * = NULL ){
       printf ( "1" );
   }
   
   template < typename T>
   void test(T&, T&, T&){
       printf ( "2" );
   }
};

struct B : public C::A{
   char data;
};

struct D{
   char data;
};


void OnStart (){
   C c;

   B b;
   D d;
   
   c.test(b, b, b);     // should be: 2       
   c.test(b, d, d);     // should be: 1       //Compile Error: template parameter ambiguous, could be 'B' or 'D'
}

int main(){
   OnStart ();
   return 0 ;
}
 
Sergey Dzyublik :

MT5 버그(빌드 2342)는 전달된 매개변수에 적합한 서명을 가진 오버로드된 템플릿 함수가 있다는 사실에도 불구하고 템플릿 함수 코드를 생성할 때 컴파일 오류를 일으킵니다.
C++ 온라인: https://onlinegdb.com/HyxjmV-DVI

당신이 하는 모든 어려운 테스트 작업에 대해 Metaquote로부터 응답을 받은 적이 있습니까?
 

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

오류, 버그, 질문

Sergey Dzyublik , 2020.02.28 22:21

 class C{
public :
   struct A{
       char aaa;
   };
};

struct B : public C::A {
   char data;
};
이 옵션에 대해 몰랐습니다. 감사합니다.
 
Alain Verleyen :
당신이 하는 모든 어려운 테스트 작업에 대해 Metaquote로부터 응답을 받은 적이 있습니까?

예, 아니요.
내 쪽에서 불평은 없지만 좋은 말은 결코 아프지 않습니다.

 
다음 문제를 해결할 수 없는 것 같습니다.
전달된 매개변수를 구별하고 각각의 경우에 고유한 알고리즘을 실행하기 위해 테스트 기능에 대한 "부분적 전문화"를 얻는 방법은 무엇입니까?
기꺼이 도와드리겠습니다. 감사합니다.

예상되는 동작으로 C++ 온라인( https://onlinegdb.com/rycNVNDN8 ).
 class C{
public :
   struct A{
   public :
       char aaa;
      
      A ( char value = 0 ) : aaa( value ){}
       void set ( char value ){
         aaa = value ; 
      };
       char get (){ return aaa;}
   };
   
   void test(A&, A& a1, A& a2){
      printf( "1" );
      a1.aaa = a2.aaa;
   }
   
   template<typename T>
   void test(A&, T& d1, T& d2){
      printf( "2" );
      d1. set (d2. get ());
   }
};

struct B : public C::A{};


struct D{
private :
   char data;
public :  
   D( char value = 0 ) : data( value ){}
   void set ( char value ){
      data = value ; 
   };
   char get (){ return data;}
};


void OnStart(){
   C c;

   B b;
   D d;
   
   c.test(b, b, b);     // 2      should be: 1
   c.test(b, d, d);     // 2      should be: 2   
}
 
Sergey Dzyublik :
다음 문제를 해결할 수 없는 것 같습니다.
전달된 매개변수를 구별하고 각각의 경우에 고유한 알고리즘을 실행하기 위해 테스트 기능에 대한 "부분적 전문화"를 얻는 방법은 무엇입니까?
기꺼이 도와드리겠습니다. 감사합니다.
 class C{
public :
   struct A{
       char aaa;
   };
   
   /*void test(A&, A&, A&){
      printf("1");
   }*/
   
   template < typename T>
   void test(A&, T&, T&){
       if ( sizeof (T)== sizeof (A)) printf ( "1" );
       else                        printf ( "2" );
   }
};

struct B : public C::A{
   char data;
};

struct D{
   char data;
};


void OnStart (){
   C c;

   B b;
   D d;
   
   c.test(b, b, b);     // 2      should be: 2 
   c.test(b, d, d);     // 1      should be: 1    
}