열혈 c++ 예제

개체 슬라이스는 여기에 잘 설명되어 있습니다. 정보를 주셔서 감사합니다! 아래에서 예제와 함께 개체 슬라이스에 대한 자세한 내용을 찾을 수 있습니다. 스칼라와 Java 예제 모두 네이티브 구현은 동일합니다. 코드는 다르지만 C 또는 C++에서 구현을 작성할 수 있습니다. 아래 샘플은 C++에서 Sample1.h에 정의된 모든 메서드를 구현합니다. 아래 코드를 Copyand To The File1.cpp: 기사를 빨간색으로 입력했지만 보폭(end-2)을 작성하는 것은 실제로 의미가 없습니다(끝을 슬라이스 위치로 사용하는 것과 는 대조적으로). 또는 보폭(역(역)) 또는 보폭(역, 2) /*과 같은 보폭(앞으로, 2) */는 반대로 비교에 어떤 이점도 제공하지 않습니다 | 보폭 (2), 그래서 나를 위해 실제로 의미가 있는 유일한 옵션은 보폭 (-2)을 사용하는 것입니다. 공정한 요점, 그러나 서명 / 서명되지 않은 충돌의 부담은 바로 그것을 얻기 위해 충분히 걱정하는 사람들에 의해 수행되지 않습니다. 경고를 무시하고 잠재적 인 오버 플로우 또는 언더 플로우에 대한 테스트없이 캐스트를 추가하는 사람들의 팀 비장등 모든 사람이 수행합니다. 이는 대다수프로그래머인 IMO입니다.

이 시점에서, 우리는 성공적으로 원래보다 더 좁은 표현으로 사람을 보았다 – 의견에 의해. 그러나 우리는 또한 우리의 디자인을 마무리하는 길에 매우 어려운 장애물에 도달했습니다 : 우리는 어떻게 모든 사람이 일할 수있는 방법을 알 수 있습니까? 당연히 현대 사회의 인간은 한 가지 종류의 작업만 수행하지 않으며 더 중요한 것은 그들이 수행하는 작업에는 매우 다른 “입력”이 필요합니다. 요리사는 자신의 작업을 수행하기 위해 재료와 조리법이 필요합니다. 소프트웨어 엔지니어는 커피, 키보드 및 모니터가 필요합니다. 분명히, 우리는 우리의 작업 방법의 디자인에 유연해야합니다. Python에서는 매우 간결한 구문을 사용하여 연속 하위 범위의 뷰를 만드는 컨테이너를 슬라이스할 수 있습니다. 예를 들어, 그것은 사실이다. 다행히도 많은 사람들이 end-0이라고 말하는 것을 볼 수는 없지만 여전히 문서에서 이를 지적하는 것이 좋을 수 있습니다. 또한, 사람은 자신의 이름에서 독점적으로 만들어집니다: 우선 컨테이너에 대해 다른 목적을 위해 스크립트 연산자를 사용하기 때문에 수행할 수 없습니다.

컨테이너에 대한 슬라이싱을 구현하기로 결정하더라도 일부 컨테이너의 경우 제안된 구문에는 이미 의미가 있습니다(flat_map<tuple, int>, int>) 효과적으로 슬라이스될 수 있으며 슬라이스를 위한 경량 구문의 이점을 얻을 수 있습니다. (대가로 상한은 덜 분명하지만 실제 문제일 가능성은 훨씬 적습니다.) 이 모든 것은 웅장하고 장밋빛으로 들리지만 정적 다형성의 단점에 부딪치기까지는 그리 오래 걸리지 않습니다. 첫째, Office에 배치하는 사람의 유형은 컴파일 타임에 고정됩니다. 런타임에 사무실의 거주자를 쿡에서 소프트웨어 엔지니어로 변경할 수 없습니다. 둘째, 템플릿은 안전하고 재미 있지만 대규모 라이브러리 디자인으로 는 확장이 잘 되지 않습니다. 템플릿을 한 번 사용하고 실제 인스턴스화 시점까지 템플릿을 사용하는 모든 코드가 템플릿이 됩니다. 라이브러리는 헤더 전용 라이브러리가 되며 긴 enable_if 표현식에서 각도 대괄호를 놓쳤기 때문에 불쾌한 컴파일러 오류와 싸우는 데 너무 많은 시간을 소비합니다. 라이브러리에서 전체 템플릿을 잘 하는 경우 정적 다형성이 좋습니다. 그렇지 않은 경우 아래에 설명된 대안을 조사할 수 있습니다. 나는 이것에 동의한다.

나는 정말 `끝`솔루션을 좋아하고, 연산자의이 사용은 영리하지만, 나는 그것이 훨씬 덜 분명하다고 생각합니다.