revers45, 약간 잘못, 나는 마침내 내가 무슨 말을하는지 알아 냈습니다. 과부하를 보장하기 위해 범용 함수 작성의 가능성이 있습니다. 각 인수 유형에 대해 함수를 작성하지 않고 하나의 함수 템플릿을 작성합니다. 위의 사람들은 무언가를 심하게 혼동하고 있습니다. 여기에는 함수 템플릿만 있습니다. 그러나 대화는 어떤 종류의 감정가로 시작되었지만 템플릿에 대한 질문이 나왔기 때문에 한 번에 침묵이 왔습니다. 그들은 영리한 이야기꾼 인 것 같습니다.
템플릿이 없기 때문에 매크로에서 할 수 있으며,이 주제에 대한 기사 (템플릿 대신 매크로) + 매크로에서도 stl의 알고리즘 아날로그를 작성한 사람도 있다고 생각합니다. 그러나이 모든 것이 템플릿의 표준 라이브러리에 있어야하며, 자신의 컨테이너를 작성하는 것은 어떻게 든 잘못되었으며 (교육 목적으로 만 유용 함) 배열로 수행하는 것이 더 쉽습니다.
업데이트 : 매크로에 알고리즘이 필요하지 않으며 함수 템플릿을 사용할 수 있습니다. 가상 삽입/...이 마음에 들지 않습니다. 디버그 모드에서 타입 검사 어서트를 사용하는 것이 좋습니다.
"일반적인 구현"이란 템플릿에 대한 구현을 의미하는 것일 수 있습니다.
패턴이란 무엇인가요? 패턴이 무슨 뜻인가요? 프로그래밍할 때 손가락으로 키를 누르는 특별한 비틀린 방식인가요?
오래된 컴파일 타임 매크로 대체 방법의 유산인 템플릿은 사실 오래 전에 객체 지향 프로그래밍과의 관련성을 잃었습니다.
현대 언어에서는 이러한 작업은 런타임 도구(예: C#의 제네릭, 동적 유형 인식 RTTI 및 변형 유형 사용)로 해결됩니다.
물론 여전히 템플릿을 좋아하는 올드보이들이 있지만, 프로그래머로서 IMHO는 은퇴할 때가 되었다는 신호입니다.
구식 컴파일 타임 매크로 대체 방법의 유산인 템플릿은 사실 객체 지향 프로그래밍과의 관련성을 잃은 지 오래되었습니다.
현대 언어에서 이러한 작업은 런타임 도구(예: C#의 제네릭, 동적 유형 인식 RTTI 및 변형 유형 적용)로 해결됩니다.
물론 여전히 템플릿을 좋아하는 올드보이들이 있지만 프로그래머로서 IMHO는 이제 은퇴할 때가 되었다는 신호입니다.
) 템플릿은 오랫동안 매크로 대체에서 멀리 떨어져 있으며 별도의 패러다임으로 매우 성공적으로 존재합니다.
C#의 제네릭은 매우 축소된 템플릿일 뿐이며 실제로는 런타임이 아니라 컴파일 시간이 더 빠르기 때문에 속도가 더 빠릅니다.)
하지만 RTTI와 변형 유형만 보면 나쁜 생각이 듭니다....
____________________
물론 이 모든 것이 멋지긴 합니다. 그러나 MQL5에는 템플릿 함수만 있고 클래스가 없습니다(있을까요?). 따라서 템플릿의 목록은 현재 도구로는 실현할 수 없습니다.
) 템플릿은 오래 전부터 매크로 대체에서 벗어나 별도의 패러다임으로 성공적으로 존재하고 있습니다.
C#의 제네릭은 매우 축소된 템플릿일 뿐이며 일반적으로 런타임이 아니라 컴파일 시간으로 인해 사용 속도가 더 빨라집니다.)
그러나 RTTI와 변형 유형 만 나쁜 생각을 제안합니다....
____________________
물론 이 모든 것이 멋지긴 합니다. 하지만 MQL5에는 템플릿 함수만 있고 클래스가 없습니다(있을까요?). 따라서 템플릿의 목록은 현재 도구로는 실현할 수 없습니다.
화석 패러다임은 지난 세기에 대한 따뜻한 추억이고 지식의 짐처럼 보이기 때문에 행복합니다.
그러나 MQ는 고객이 할아버지 Macro Assembler와 ANSI C에 대한 향수를 가지고 있다고 가정하고 MQL5 개선에 대한 제안을 무시하기 때문에 이 때문에 현대적인 접근 방식을 외면할 필요는 없습니다.
.
템플릿이 없기 때문에 매크로에서 할 수 있으며,이 주제에 대한 기사 (템플릿 대신 매크로) + 매크로에서도 stl의 알고리즘 아날로그를 작성한 사람도 있다고 생각합니다. 그러나이 모든 것이 템플릿의 표준 라이브러리에 있어야하며, 자신의 컨테이너를 작성하는 것은 어떻게 든 잘못되었으며 (교육 목적으로 만 유용 함) 배열로 수행하는 것이 더 쉽습니다.
업데이트 : 매크로에 알고리즘이 필요하지 않으며 함수 템플릿을 사용할 수 있습니다. 가상 삽입/...이 마음에 들지 않습니다. 디버그 모드에서 타입 검사 어서트를 사용하는 것이 좋습니다.
안녕하세요,
test_MQL5_List.mq5를 컴파일하려고 하는데 다음과 같은 오류가 발생했습니다:
'm_head' - 상수 객체의 멤버를 수정할 수 없습니다 CiSingleList.mqh 504 9
'm_tail' - 상수 객체의 멤버를 수정할 수 없습니다 CiSingleList.mqh 505 9
'm_size' - 상수 객체의 멤버를 수정할 수 없습니다 CiSingleList.mqh 496 9