struct A
{
int i;
double d;
};
template < typename T>
T f( int value)
{
T result={ 0 };
return (result);
}
//+------------------------------------------------------------------+voidOnStart ()
{
A a;
int i = 1 ;
a = f<A> (i);
}
결함: (MT5(빌드 2319)에 의해 수정되지 않음 ) 템플릿 클래스 캐시 작업의 버그: "내부 유형 "C"로 복잡한 다중 래핑된 객체를 생성하고 완전히 다른 데이터 유형으로 판명될 수 있습니다. "B", 아마도 "int", 원하는 대로 ...". ( not fixed MT5(build 2319)) 내부 클래스를 사용할 때 템플릿 클래스 코드 생성 버그. (MT5(빌드 2319)에 의해 수정되지 않음 ) 내부 클래스 정의 시 버그 - 기본 클래스를 지정할 때 전역 네임스페이스를 명시적으로 참조할 방법이 없습니다.
제안: 링크 - MQL typedef 선언에 기능을 도입해야 할 필요성에 대해. 링크 - 기본 복사 생성자 및 할당 연산자 생성을 강제하는 기능 제공에 대해.
템플릿은 출력 값이 아닌 매개변수로만 유형을 추론하기 때문입니다.
이것은 정확하지 않습니다.
정확하지 않습니다.
고맙습니다!
예, 작동합니다. 구문이 혼동되었습니다.
추신: 이제 모든 것이 의도한 대로 작동합니다.
Base64의 POD 구조 직렬화이것은 정확하지 않습니다.
아니, 그건 확실해. 당신은 함수에 대한 템플릿 매개변수 유형의 명시적 설정 을 언급했고 저는 파생 에 대해 이야기하고 있었습니다. fxsaber는 저보다 먼저 명시적 설정에 대해 답변했습니다. 그리고 당신까지
아니, 그건 확실해. 당신은 함수에 대한 템플릿 매개변수 유형의 명시적 설정 을 언급했고 저는 파생 에 대해 이야기하고 있었습니다. fxsaber는 나보다 먼저 명시적 설정에 대해 답변했습니다. 그리고 당신까지
포럼과 문서를 검색하여 찾지 못했습니다. 질문이 무르익었습니다.
1. MQL5가 저장할 수 있는 최대 문자열 크기는 얼마입니까?
2. MQL4가 저장할 수 있는 최대 문자열 크기는 얼마입니까?
3. 메모리가 부족하면 이 최대 크기가 줄어들거나(또는 메모리가 문자열에 할당되지 않음) 런타임 오류가 발생합니까?
결함:
(MT5(빌드 2319)에 의해 수정되지 않음 ) 템플릿 클래스 캐시 작업의 버그: "내부 유형 "C"로 복잡한 다중 래핑된 객체를 생성하고 완전히 다른 데이터 유형으로 판명될 수 있습니다. "B", 아마도 "int", 원하는 대로 ...".
( not fixed MT5(build 2319)) 내부 클래스를 사용할 때 템플릿 클래스 코드 생성 버그.
(MT5(빌드 2319)에 의해 수정되지 않음 ) 내부 클래스 정의 시 버그 - 기본 클래스를 지정할 때 전역 네임스페이스를 명시적으로 참조할 방법이 없습니다.
제안:
링크 - MQL typedef 선언에 기능을 도입해야 할 필요성에 대해.
링크 - 기본 복사 생성자 및 할당 연산자 생성을 강제하는 기능 제공에 대해.
결함:
버그 보고서를 추적하는 것이 좋습니다. 포럼에서 모든 것이 복구 불가능하게 손실되었기 때문에 나는 그렇게 하지 않았습니다.
아마도 검색으로 한 번에 모두 찾을 수 있도록 버그 보고서와 함께 게시물에 하나의 동일한 해시 항목을 추가해야 할 것입니다.
포럼과 문서를 검색하여 찾지 못했습니다. 질문이 무르익었습니다.
1. MQL5가 저장할 수 있는 최대 문자열 크기는 얼마입니까?
2. MQL4가 저장할 수 있는 최대 문자열 크기는 얼마입니까?
3. 메모리가 부족하면 이 최대 크기가 줄어들거나(또는 메모리가 문자열에 할당되지 않음) 런타임 오류가 발생합니까?
MT4에서 문자열을 테스트하려고 했습니다.
Vin 관리자에서 메모리는 많이 흐르지 않습니다(11.9 중 5.1), 로그의 MT4:
StringLen = 221696000, m_physical = 12157, m_total = 4095, m_available = 3365, m_used = 729
일반적으로 합리적인 작업을 위해 큰 문자열을 사용할 수 있습니다. 아마도 조금 후에 문자열을 통해 파일을 복사하고 확인할 것입니다.
UPD: 대체 uchar u_arr[ 102400 ]; uchar 로 u_arr[524224]; 프로세스 속도를 높이기 위해
total: MT4에서 문자열에 넣을 수 있는 대략적인 최대값은 다음과 같습니다.
2020.02.13 21:11:24.177 tst_string EURUSD,H1: 메모리 부족
2020.02.13 21:11:24.024 tst_string EURUSD,H1: StringLen = 640601728, m_physical = 12157, m_total = 4095, m_available = 2556, m_used = 1539
저것들. 약 640MB
추신: MT5
2020.02.13 21:56:12.964 tst_string(EURUSD,H1) StringLen = 1073610752, m_physical = 12157, m_total = 24314, m_available = 21975, m_used = 2339
2020.02.13 21:56:13.140 tst_string(EURUSD,H1) 'tst_string.mq5'의 메모리 부족(41,12)
MT4에서 문자열을 테스트하려고 했습니다.
Vin 관리자에서 메모리는 많이 흐르지 않습니다(11.9 중 5.1), 로그의 MT4:
StringLen = 221696000, m_physical = 12157, m_total = 4095, m_available = 3365, m_used = 729
일반적으로 합리적인 작업을 위해 큰 문자열을 사용할 수 있습니다. 아마도 조금 후에 문자열을 통해 파일을 복사하고 확인할 것입니다.
UPD: 대체 uchar u_arr[ 102400 ]; uchar 로 u_arr[524224]; 프로세스 속도를 높이기 위해
total: MT4에서 문자열에 넣을 수 있는 대략적인 최대값은 다음과 같습니다.
2020.02.13 21:11:24.177 tst_string EURUSD,H1: 메모리 부족
2020.02.13 21:11:24.024 tst_string EURUSD,H1: StringLen = 640601728, m_physical = 12157, m_total = 4095, m_available = 2556, m_used = 1539
저것들. 약 640MB
추신: MT5
2020.02.13 21:56:12.964 tst_string(EURUSD,H1) StringLen = 1073610752, m_physical = 12157, m_total = 24314, m_available = 21975, m_used = 2339
2020.02.13 21:56:13.140 tst_string(EURUSD,H1) 'tst_string.mq5'의 메모리 부족(41,12)
이것은 유니코드 의 문자열 길이 이므로 MB 단위로 최소 double입니다. 연속 메모리 버퍼가 필요하고 MT4는 32비트 응용 프로그램이므로 MT4의 경우 1.3GB입니다. 따라서 mql4 제한 자체는 제한이 아니라 사용 가능한 메모리에 의해서만 제한됩니다.
사용 가능한 메모리가 많은 것 같아서 MT5가 더 많은 것을 허용하지 않는다는 점에 조금 놀랐습니다. 난 내 최선을 다할 것입니다.
이것은 유니코드 의 문자열 길이 이므로 MB 단위로 최소 double입니다. 연속 메모리 버퍼가 필요하고 MT4는 32비트 응용 프로그램이므로 MT4의 경우 1.3GB입니다. 따라서 mql4 제한 자체는 제한이 아니라 사용 가능한 메모리에 의해서만 제한됩니다.
사용 가능한 메모리가 많은 것 같아서 MT5가 더 많은 것을 허용하지 않는다는 점에 조금 놀랐습니다. 난 내 최선을 다할 것입니다.
나는 12GB의 메모리, Windows 10 OS, 여유 메모리는 약 8GB입니다
MT4/MT5 터미널에서 허용되는 최대 라인 길이를 결정하기 위해 이 테스트가 필요했습니다.
이제 Redis 데이터베이스를 통해 터미널 간에 교환을 설정하고 싶습니다.
Redis는 매우 간단한 데이터베이스이며 문자열(키 - 값 --> 문자열 - 문자열)로만 작동합니다.
어제 Base64에서 POD 구조의 직렬화를 수행했지만 데이터 크기는 약 1/3 증가했습니다.
이 경우에도 트랜잭션당 400MB 크기의 구조를 교환할 수 있다고 생각합니다. 이것은 어떤 목적으로도 충분합니다! ;)