OOP, mql5의 템플릿 및 매크로, 미묘함 및 사용 기술 - 페이지 20

 
매크로 인수 수에서 8개 요소 제한을 제거하는 방법, 8개 요소가 누락되었습니까?
 
Seric29 :
매크로 인수 수에서 8개 요소 제한을 제거하는 방법, 8개 요소가 누락되었습니까?

쓸 매크로의 매크로입니다.

왜 그냥 함수를 작성하지 않습니까?

 

매크로를 사용하여 const 수정자를 제거/제거할 수 있습니까? 그리고 필요할 때 끄시겠습니까?

추신: 코드가 있습니다:

 class COrder {
private :
//--- const to send order
   const int          c_cmd;
   const double       c_volume;
   double             c_price;
   const int          c_magic;
   const int          c_stoploss;
   const int          c_takeprofit;
}

파일에 클래스 필드를 작성하고 생성자를 통해 파일에서 복원하기로 결정했지만 const 수정자가 이를 방해합니다.

코드가 거의 완성되었습니다. 이론상으로는 모든 const를 제거할 수 있지만... 하지만 추가 수정의 가능성을 잃고 싶지 않을 수도 있습니다. const는 코드 편집 중에 많은 도움이 됩니다.

 
Igor Makanu :

매크로를 사용하여 const 수정자를 제거/제거할 수 있습니까? 그리고 필요할 때 끄시겠습니까?

 #define const
 
fxsaber :

흠 너무 쉽죠?!

그러나 이 매크로를 적용할 소스 영역을 어떻게 제한합니까?

 
Igor Makanu :

그러나 이 매크로를 적용할 소스 영역을 어떻게 제한합니까?

 #undef const
 
Igor Makanu :

매크로를 사용하여 const 수정자를 제거/제거할 수 있습니까? 그리고 필요할 때 끄시겠습니까?

추신: 코드가 있습니다:

파일에 클래스 필드를 작성하고 생성자를 통해 파일에서 복원하기로 결정했지만 const 수정자가 이를 방해합니다.

코드가 거의 완성되었습니다. 이론상으로는 모든 const를 제거할 수 있지만... 하지만 추가 수정의 가능성을 잃고 싶지 않을 수도 있습니다. const는 코드 편집 중에 많은 도움이 됩니다.

무슨 생각이야? 모든 곳에서 c_cmd는 상수이지만 한 기능에서는 상수가 아니잖아요? 그렇다면 이것은 UB입니다(예, 이렇게 할 수 없습니다). 글쎄, 읽기 전용 세그먼트, 컴파일러 최적화 때문에 ...

 
fxsaber :

흠, 또 간단하다

감사하다!

빅트 :

무슨 생각이야? 모든 곳에서 c_cmd는 상수이지만 한 기능에서는 상수가 아니잖아요? 그렇다면 이것은 UB입니다(예, 이렇게 할 수 없습니다). 글쎄, 읽기 전용 세그먼트, 컴파일러 최적화 때문에 ...

아이디어는 발명하는 것이 아닙니다. 최적의 솔루션, 무엇을 저장할지, 언제를 찾는 데 지쳤습니다. 새 주문(멀티 -주문 TS)


그러나 나는 자정에 이미 const를 취소하고 싶지 않다고 생각했습니다. 저장된 클래스의 필드 이름으로 필드가 있는 별도의 구조가 있을 것입니다 - 편집기에서 2분 안에 복사-붙여넣기))), 음, FileWriteStruct()를 한 번 호출하여 저장하는 것도 편리합니다.

다음 생성자와 같은 상태로 상태를 복원합니다.

COrder::COrder(SRecovery &property)
:  c_cmd(property.c_cmd),
   c_volume(property.c_volume),
   c_price(property.c_price),
   c_magic(property.c_magic),
   c_stoploss(property.c_stoploss),
   c_takeprofit(property.c_takeprofit)
{

}

이러한 생성자를 호출하면 상수 필드를 초기화할 수 있습니다.

데이터 복구는 터미널을 다시 시작하는 데만 필요합니다.

아직 해보지 않았지만 모든 것이 문제 없이 작동할 것이라고 99% 확신합니다. 소개하고 싶지 않은 유일한 것은 새로운 데이터 유형 (저장을 위한 구조)이었습니다. 나중에 코드를 읽을 수 있습니다 .... 주석은 우리가 작성할 수 없습니다)) ))

 
Igor Makanu :

흠, 또 간단하다

감사하다!

아이디어는 발명하는 것이 아닙니다. 최적의 솔루션, 무엇을 저장할지, 언제를 찾는 데 지쳤습니다. 새 주문(멀티 -주문 TS)


그러나 나는 자정에 이미 const를 취소하고 싶지 않다고 생각했습니다. 저장된 클래스의 필드 이름으로 필드가 있는 별도의 구조가 있을 것입니다 - 편집기에서 2분 안에 복사-붙여넣기))), 음, FileWriteStruct()를 한 번 호출하여 저장하는 것도 편리합니다.

다음 생성자와 같은 상태로 상태를 복원합니다.

이러한 생성자를 호출하면 상수 필드를 초기화할 수 있습니다.

데이터 복구는 터미널을 다시 시작하는 데만 필요합니다.

아직 해보지 않았지만 모든 것이 문제 없이 작동할 것이라고 99% 확신합니다. 소개하고 싶지 않은 유일한 것은 새로운 데이터 유형 (저장을 위한 구조)이었습니다. 나중에 코드를 읽을 수 있습니다 .... 주석은 우리가 작성할 수 없습니다)) ))

쓰기를 위한 임시 구조를 만들고 싶지 않다면 파일에 필드를 차례로 쓴 다음 생성자에서도 읽으십시오. 더 빨리 나온다는 사실과는 거리가 멀지만, 코드는 확실히 "무서워" 보일 것입니다.
 
fxsaber :
하지 그. 그는 const_cast의 유사체가 필요하지만 그렇지 않습니다.