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

 
Stanislav Korotky :

함수 내부의 클래스 선언?

템플릿 없이 작동합니다.

 
함수 포인터 배열이 사용될 때 포인터를 통해 함수를 호출할 때 MT5 버그(빌드 2375) 컴파일 오류 :

 #define PRINT(x) ; Print ( #x, ":" , string (x))

void test(){
   PRINT( __FUNCSIG__ );
}

template < typename T>
void call(T f_ptr){
   f_ptr();
}


template < typename T>
class A{
public :
   T arr_1[ 1 ];
   
   typedef void (*ff)();
   ff arr_2[ 1 ];  
   
   
   T test_1(){
       return arr_1[ 0 ];
   } 
   
   ff test_2(){
       return arr_2[ 0 ];
   } 
   
   T operator []( int index){
       return arr_1[index];
   }
};

void OnStart (){
   typedef void (*ff)();
   ff arr[ 1 ];
   arr[ 0 ] = test;   
   
   ff f_ptr = arr[ 0 ];
   f_ptr();             //Ok
   call(arr[ 0 ]);         //Ok
   arr[ 0 ]();             //Compile Error: ')' - expression expected    
   
   
   A<ff> a;             
   a.arr_1[ 0 ] = test;
   a.arr_2[ 0 ] = test;
   
   
   a.arr_1[ 0 ]();         //Compile Error: ')' - expression expected    
   a.arr_2[ 0 ]();         //Compile Error: ')' - expression expected    
   
   a.test_1()();         //Compile Error: ')' - expression expected    
   a.test_2()();         //Compile Error: ')' - expression expected    
   
   a[ 0 ]();               //Ok ???
}


 
Sergey Dzyublik :
함수 포인터 배열이 사용될 때 포인터를 통해 함수를 호출할 때 MT5 버그(빌드 2375) 컴파일 오류 :

아주 오래된 버그입니다.

 

누가 알려줄까요? MetaEditor 열린 파일 창에서 나중에 파일을 열 수 있도록 목록이 저장되는 위치는 무엇입니까?

주기적으로 ME는 처음부터 열립니다. 그 전에는 많은 파일이 열렸습니다. 업데이트와 관련이 있을 수 있습니다.

목록을 수동으로 백업하고 싶습니다. 아니면 다른 방식으로 해결할 수 있습니까?

 
Aleksey Mavrin :

누가 알려줄까요? MetaEditor 열린 파일 창에서 나중에 파일을 열 수 있도록 목록이 저장되는 위치는 무엇입니까?

주기적으로 ME는 처음부터 열립니다. 그 전에는 많은 파일이 열렸습니다. 업데이트와 관련이 있을 수 있습니다.

목록을 수동으로 백업하고 싶습니다. 아니면 다른 방식으로 해결할 수 있습니까?

레지스트리에 목록이 있습니다. 경로를 따라 "metaeditor.ini" ini 파일에 목록이 있습니다. ME ==> 파일 - 데이터 폴더 열기(Ctrl + Shift + D) ==> 구성 ==> metaeditor.ini
두 번째가 필요합니다.

 
fxsaber :

아주 오래된 버그입니다.

모든 것이 제대로 작동하면 정확히 기억합니다.
배열에서 함수 포인터를 호출하기 위한 몇 가지 옵션을 확인하고 추가했습니다.

함수 포인터의 배열이 클래스 내부에 있고 operator[]를 사용하여 특정 배열 요소에 액세스할 때 모든 것이 작동한다는 것이 밝혀졌습니다.
동시에 일반 함수를 사용하여 요소에 접근하면 컴파일 오류 가 다시 발생합니다 ... 기적 ...

 
표시기의 자동 크기 조정을 취소하는 방법은 아무도 알려주지 않습니다. 저것들. 표시기 하위 창에 두 개의 차트가 있다고 가정해 보겠습니다. 두 번째 차트가 아닌 한 차트에서 세로 축을 따라 크기 조정을 수행할 수 있습니까? 두 번째 그래프가 재조정에 영향을 미치지 않도록 합니다.
 
MT5 버그(빌드 2375), 명시적 특수화에도 불구하고 오버로드된 템플릿 함수를 호출할 때 기본 템플릿 함수가 계속 호출되어 스택 오버플로가 발생합니다.
C++ 온라인( https://onlinegdb.com/BJTFdUDD8 )
 template < typename T>
void test(T &arr[], T value){
     printf ( "1" );
};

template < typename T, typename TT>
void test(T* &arr[], TT* value){
     printf ( "2" );
     test<T*>(arr, value);
};

class A{};

void OnStart (){
   void * arr[] = {};
   A* ptr;
   test(arr, ptr);         // result: 2,2,2,2,2,2,2,2,...    should be: 2, 1
}
 
bool s_sel = SymbolSelect ( "" , true );
s_sel = true;

고쳐주세요

 

힌트는 하나의 ENUM 값만 반환합니다.