기고글 토론 "MQL5 프로그래밍 기본: 목록" - 페이지 9

 
C-4:
"일반적인 구현"이란 템플릿에 대한 구현을 의미하는 것일 수 있습니다.
그게 뭔가요? 템플릿에서 구현한다는 게 무슨 뜻인가요? 프로그래밍하는 동안 손가락으로 키를 누르는 특별한 방법인가요?
 
Integer:
패턴이란 무엇인가요? 패턴이 무슨 뜻인가요? 프로그래밍할 때 손가락으로 키를 누르는 특별한 비틀린 방식인가요?

오래된 컴파일 타임 매크로 대체 방법의 유산인 템플릿은 사실 오래 전에 객체 지향 프로그래밍과의 관련성을 잃었습니다.

현대 언어에서는 이러한 작업은 런타임 도구(예: C#의 제네릭, 동적 유형 인식 RTTI 및 변형 유형 사용)로 해결됩니다.
물론 여전히 템플릿을 좋아하는 올드보이들이 있지만, 프로그래머로서 IMHO는 은퇴할 때가 되었다는 신호입니다.

 
revers45:

구식 컴파일 타임 매크로 대체 방법의 유산인 템플릿은 사실 객체 지향 프로그래밍과의 관련성을 잃은 지 오래되었습니다.

현대 언어에서 이러한 작업은 런타임 도구(예: C#의 제네릭, 동적 유형 인식 RTTI 및 변형 유형 적용)로 해결됩니다.
물론 여전히 템플릿을 좋아하는 올드보이들이 있지만 프로그래머로서 IMHO는 이제 은퇴할 때가 되었다는 신호입니다.

) 템플릿은 오랫동안 매크로 대체에서 멀리 떨어져 있으며 별도의 패러다임으로 매우 성공적으로 존재합니다.

C#의 제네릭은 매우 축소된 템플릿일 뿐이며 실제로는 런타임이 아니라 컴파일 시간이 더 빠르기 때문에 속도가 더 빠릅니다.)

하지만 RTTI와 변형 유형만 보면 나쁜 생각이 듭니다....

____________________

물론 이 모든 것이 멋지긴 합니다. 그러나 MQL5에는 템플릿 함수만 있고 클래스가 없습니다(있을까요?). 따라서 템플릿의 목록은 현재 도구로는 실현할 수 없습니다.

 
TheXpert:

) 템플릿은 오래 전부터 매크로 대체에서 벗어나 별도의 패러다임으로 성공적으로 존재하고 있습니다.

C#의 제네릭은 매우 축소된 템플릿일 뿐이며 일반적으로 런타임이 아니라 컴파일 시간으로 인해 사용 속도가 더 빨라집니다.)

그러나 RTTI와 변형 유형 만 나쁜 생각을 제안합니다....

____________________

물론 이 모든 것이 멋지긴 합니다. 하지만 MQL5에는 템플릿 함수만 있고 클래스가 없습니다(있을까요?). 따라서 템플릿의 목록은 현재 도구로는 실현할 수 없습니다.

화석 패러다임은 지난 세기에 대한 따뜻한 추억이고 지식의 짐처럼 보이기 때문에 행복합니다.

그러나 MQ는 고객이 할아버지 Macro Assembler와 ANSI C에 대한 향수를 가지고 있다고 가정하고 MQL5 개선에 대한 제안을 무시하기 때문에 이 때문에 현대적인 접근 방식을 외면할 필요는 없습니다.
.

 
revers45, 약간 잘못, 나는 마침내 내가 무슨 말을하는지 알아 냈습니다. 과부하를 보장하기 위해 범용 함수 작성의 가능성이 있습니다. 각 인수 유형에 대해 함수를 작성하지 않고 하나의 함수 템플릿을 작성합니다. 위의 사람들은 무언가를 심하게 혼동하고 있습니다. 여기에는 함수 템플릿만 있습니다. 그러나 대화는 어떤 종류의 감정가로 시작되었지만 템플릿에 대한 질문이 나왔기 때문에 한 번에 침묵이 왔습니다. 그들은 영리한 이야기꾼 인 것 같습니다.
[삭제]  

템플릿이 없기 때문에 매크로에서 할 수 있으며,이 주제에 대한 기사 (템플릿 대신 매크로) + 매크로에서도 stl의 알고리즘 아날로그를 작성한 사람도 있다고 생각합니다. 그러나이 모든 것이 템플릿의 표준 라이브러리에 있어야하며, 자신의 컨테이너를 작성하는 것은 어떻게 든 잘못되었으며 (교육 목적으로 만 유용 함) 배열로 수행하는 것이 더 쉽습니다.

업데이트 : 매크로에 알고리즘이 필요하지 않으며 함수 템플릿을 사용할 수 있습니다. 가상 삽입/...이 마음에 들지 않습니다. 디버그 모드에서 타입 검사 어서트를 사용하는 것이 좋습니다.

 
첨부 파일을 다운로드하면 여러 곳에서 다음과 같은 컴파일 오류가 발생합니다: 'm_head' - 상수 객체의 멤버를 수정할 수 없음 CiSingleList.mqh 504 &. 9
 
좋은 기사이며 모든 것이 명확하게 설명되어 있기 때문에 Mql5 커뮤니티의 모든 사람에게 작성되었다고 생각합니다.
 
나는이 기사가 OOP에 대한 명확한 통찰력을 제공한다고 말해야합니다. 나는 이것을 읽은 후에 내가 어떻게 많은 것을 얻었는지에 감동하고, 나는 절을합니다.
 

안녕하세요,

test_MQL5_List.mq5를 컴파일하려고 하는데 다음과 같은 오류가 발생했습니다:

'm_head' - 상수 객체의 멤버를 수정할 수 없습니다 CiSingleList.mqh 504 9
'm_tail' - 상수 객체의 멤버를 수정할 수 없습니다 CiSingleList.mqh 505 9
'm_size' - 상수 객체의 멤버를 수정할 수 없습니다 CiSingleList.mqh 496 9