MT5 버그(빌드 2366), 함수 인수의 템플릿 유형을 통해 액세스되는 클래스의 정적 메서드 에 액세스할 때 컴파일 오류가 발생합니다.
template < typename _Tp>
struct It_g{
class Opt{
template < typename _It>
staticvoid test(_It &it){
_Tp p = it.p;
};
};
_Tp p;
};
template < typename _Tp>
class V{
public :
struct It : public It_g<_Tp>{};
It b;
};
template < typename T>
class GetStructType{
public :
struct type : public T{};
};
template < typename _It>
void test(_It &it){
GetStructType<_It>::type::Opt::test(it); // Ok
_It::Opt opt;
opt.test(it); // Ok
_It::Opt::test(it); // '_It' is not a class, struct or union | 'Opt' is not a class, struct or union
}
class ClassA{};
voidOnStart (){
V< int > v1;
test(v1.b);
V<ClassA*> v2;
test(v2.b);
V< int >::It it3;
test(it3);
V<ClassA*>::It it4;
test(it4);
}
MT5 버그(빌드 2366), 기본 클래스를 호출할 때 템플릿 생성자의 잘못된 네임스페이스 및 범위 사용으로 인한 컴파일 오류 . 문제는 전역 네임스페이스, 내부 클래스 및 기본 클래스로 상속될 때와 같이 동일한 클래스 이름을 사용할 때 발생합니다.
template < typename T>
struct B {
char data;
B(){}
B( int ){}
};
template < typename T>
class A{
public :
struct __reverse_iterator : public B <T>{
__reverse_iterator() : B<T>( 1 ){} // Oktemplate < typename TT>
__reverse_iterator( const TT& n) : B<T>(n){} // '<' - template mismatch
};
struct B : public __reverse_iterator{
B() : __reverse_iterator(){}
B( int n) : __reverse_iterator(n){}
};
};
voidOnStart (){
A< int >::B it_1(); // Ok
A< int >::B it_2( 1 ); // Compile Error
}
전역 네임스페이스를 명시적으로 참조하면 모든 것이 C++에서 작동합니다. C++ 온라인: https://onlinegdb.com/BJIV6frUI 이것은 MQL에서 수행할 수 없습니다 - 컴파일 오류, 내부 클래스 정의 시 버그 - 기본 클래스를 지정할 때 전역 네임스페이스를 명시적으로 참조할 가능성이 없습니다. (고정되지 않은 MT5(빌드 2366))
안녕 동료들.
이 질문을 하는 사람은 제가 처음이 아닐 수도 있습니다. 다른 스레드에 글을 작성했는데 개발자들로부터 답장을 받지 못했습니다. XAUUSD - 1USD에서 핍의 실제 비용을 지불해야 하는 이유
함수 SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE); 완고하게 0.1USD를 보여줍니다
통화 쌍에서 정상적인 틱 값을 표시하는 동안 하락, 이익 및 기타 사항을 계산하는 방법.
Z.Y. 터미널 MT5
안녕 동료들.
이 질문을 하는 사람은 제가 처음이 아닐 수도 있습니다. 다른 스레드에 글을 작성했는데 개발자들로부터 답장을 받지 못했습니다. XAUUSD - 1USD에서 핍의 실제 비용을 지불해야 하는 이유
함수 SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE); 완고하게 0.1USD를 보여줍니다
통화 쌍에서 정상적인 틱 값을 표시하는 동안 하락, 이익 및 기타 사항을 계산하는 방법.
Z.Y. 터미널 MT5
중개인에게 물어보면 이 데이터는 중개인이 작성합니다...
문제는 전역 네임스페이스, 내부 클래스 및 기본 클래스로 상속될 때와 같이 동일한 클래스 이름을 사용할 때 발생합니다.
전역 네임스페이스를 명시적으로 참조하면 모든 것이 C++에서 작동합니다. C++ 온라인: https://onlinegdb.com/BJIV6frUI
이것은 MQL에서 수행할 수 없습니다 - 컴파일 오류, 내부 클래스 정의 시 버그 - 기본 클래스를 지정할 때 전역 네임스페이스를 명시적으로 참조할 가능성이 없습니다. ( 고정되지 않은 MT5(빌드 2366))
앞서 제시된 버그는 기본 클래스를 호출할 때 생성자의 문제와 관련이 있습니다. https://www.mql5.com/en/forum/1111/page2680#comment_15546487
네임스페이스와 내부 클래스를 사용할 때 모두 "작동"한다는 점에 유의하십시오.
중개인에게 물어보면 이 데이터는 중개인이 작성합니다...
네, 감사합니다. 블라디미르.
테스터에서 유리가 작동하지 않습니까? 나는 도움말에서 이것에 대해 아무것도 찾지 못했습니다.
glass marketBookAdd (Symbol())를 구독하면 true가 반환되지만 전체 테스트 중에 OnBookEvent(const string &symbol) 이벤트는 한 번도 오지 않습니다.
테스터에서 유리가 작동하지 않습니까? 도움말에서 이 주제에 대해 아무 것도 찾지 못했습니다.
glass marketBookAdd(Symbol())를 구독하면 true가 반환되지만 전체 테스트 중에 OnBookEvent(const string &symbol) 이벤트는 한 번도 오지 않습니다.
작동하지 않습니다. 그리고 유리의 역사는 없습니다.
누군가 오류 533이 무엇인지 말해 줄 수 있습니까?
컴파일된 버전이 최신 버전임을 제안했습니다. 업데이트하도록 요청했습니다. 도움이되지 않았습니다.
누구든지 오류 533이 무엇인지 말해 줄 수 있습니까?
컴파일된 버전이 최신 버전임을 제안했습니다. 업데이트하도록 요청했습니다. 도움이되지 않았습니다.
Ex5 무결성이 손상되었습니다.
이 ex5는 어디서 구하셨나요?
이 전문가를 보내주시면 Ilyas 가 더 자세히 답변해 드릴 수 있습니다.
ex5의 무결성이 깨졌습니다.
이 ex5는 어디서 구하셨나요?
이 전문가를 보내주시면 Ilyas 가 더 자세히 답변해 드릴 수 있습니다.
빌드 2361에서 컴파일되었습니다. 컴파일된 터미널에서 작동합니다. 스카이프에서 다른 사람에게 시도하기 위해 보냈습니다(소스 코드 없이) - 오류 533.
나는 그것을 보낼 수 없습니다 - 2366을 다운로드하고 다시 컴파일했습니다(같은 이름으로). 나는 아직 결과를 모른다, 나에게 대답하지 않았다.
추가: 스카이프에 저장되었습니다. 보내다.
added2: 2366에서 재컴파일하면 동일한 오류가 발생합니다. Ilyas는 소스를 보내고 컴파일했습니다.