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

 
질문이 있습니다. 지금 무료 신호를 찾으려면 어떻게 해야 합니까? 주기적으로 수동으로 찾고 신호 페이지에는 유료 항목만 있습니다. 비용 필터를 사용하면 찾을 수 없습니다.
 
테스터에서 선택한 Expert Advisor에 연결된 라이브러리의 재컴파일은 다음 출시 시 픽업으로 이어지지 않습니다. 테스터에서 다른 Expert Advisor를 선택한 다음 이전 Advisor로 전환해야 합니다. 그래야만 테스터가 새 라이브러리를 선택합니다. 완전히 보이지 않는 버그.
 
Stanislav Korotky :
테스터에서 선택한 Expert Advisor에 연결된 라이브러리의 재컴파일은 다음 출시 시 픽업으로 이어지지 않습니다. 테스터에서 다른 Expert Advisor를 선택한 다음 이전 Advisor로 전환해야 합니다. 그래야만 테스터가 새 라이브러리를 선택합니다. 완전히 보이지 않는 버그.

안정버전도 마찬가지...

 
클래스에 이 클래스를 필드로 사용하는 래퍼 클래스에 대한 포인터가 포함된 경우 MT5 버그(빌드 2407) 컴파일 오류가 발생합니다.
C++ 온라인: https://onlinegdb.com/SJN1shM58
 template < typename T>
class wrapper{
public :
   T data;
};

class B{
public :
   wrapper<B>* ptr;             // undefined class 'B' cannot be used
};


void OnStart (){  
   B b;
   b.ptr = new wrapper<B>();
   printf ( "%p" , b.ptr);
} 
 
컴파일 중 오류:
 int i = f(); //Error: 'f' - undeclared identifier
void OnStart ()
{
}
int f() { return 0 ; }

그리고 다음과 같이:

 void OnStart ()
{
int i = f(); //нормально
}
int f() { return 0 ; }

좋아. 차이점이 뭐야?

 
A100 :
컴파일 중 오류:

그리고 다음과 같이:

따라서 첫 번째 예제를 작성해야 합니다. 정방향 설명과 함께 구조 및 클래스에 대한 정방향 설명도 작동합니다.

 int f( int );
int i = f( 5 );
void OnStart ()
{
   printf ( "i = %i" , i);
}
//+------------------------------------------------------------------+
int f( int v)
{
   return v * v;
}
//+------------------------------------------------------------------+

2020.05.10 17:23:27.704 tst1 (ETHUSD,M1) 나는 = 25

A100 :

좋아. 차이점이 뭐야?

컴파일러가 위에서 아래로 구문 분석하고 마지막으로 구문 분석되는 것은 OnStart()라고 생각합니다.
 
Igor Makanu :
컴파일러가 위에서 아래로 구문 분석하고 마지막으로 구문 분석되는 것은 OnStart()라고 생각합니다.

이 경우 생각할 필요가 없습니다. 규칙은 일반적이어야 합니다. 선언 전에 함수를 적용할 수 있으면 가능하고, 그렇지 않으면 아니오입니다. 따라서 두 경우 모두 컴파일되거나 컴파일되지 않아야 합니다.

 
A100 :

이 경우 생각할 필요가 없습니다. 규칙은 일반적이어야 합니다. 선언 전에 함수를 적용할 수 있으면 가능하고, 그렇지 않으면 아니오입니다. 따라서 두 경우 모두 컴파일되거나 컴파일되지 않아야 합니다.

아아, 여기에서는 언어 기능 이라고 하며 다음과 같이 작성할 수 있습니다.

 int f( int v)
{
   return v * v;
}
void OnStart ()
{
   printf ( "i = %i" , i);
}
//+------------------------------------------------------------------+
int i = f( 5 );
 
Igor Makanu :

아아, 여기에서는 언어 기능 이라고 하며 다음과 같이 작성할 수 있습니다.

모든 기능은 문서에 반영됩니다. 나는 거기에서 그것을 보지 못했다. 따라서 결론: 이것은 기능이 아니라 결함입니다.

 
A100 :

이 경우 생각할 필요가 없습니다. 규칙은 일반적이어야 합니다. 선언 전에 함수를 적용할 수 있으면 가능하고, 그렇지 않으면 아니오입니다. 따라서 두 경우 모두 컴파일되거나 컴파일되지 않아야 합니다.

이것은 그러한 언어의 일반적인 C 동작입니다.

함수는 전방 선언 없이 사용할 수 없습니다. OnStart의 호출은 실제로 전역 수준의 직접 호출과 비교하여 지연 컴파일됩니다.

C++에서는 똑같은 오류가 발생합니다.

사유: