나는 이것이 파티에 매우 늦다는 것을 알고 있지만 시간 변화와 대답은 계속 남아 있습니다. C ++ 11은 상당히 변화가 많으며 그 중 많은 부분이 C ++ 및 표준 라이브러리의 성능을 향상시킵니다. STL 또는 Boost를 사용하지 않는 사람들은 새로운 표준을 따르지 않는 경향이 있으며, 홈 스펀 솔루션에는 중요한 개선 사항이 부족하지만 물론 항상 그런 것은 아닙니다.
EA에서 짧은 시간을 제외하고 90 년대 중반부터 현재까지 모든 프로젝트에서 STL을 사용했습니다. 안티 STL 측은 그것을 사용하지 않을 근거가 거의 없다고 생각합니다. 그것들은 크게 사라졌습니다. 커스텀 할당자는 하나의 솔루션이며, 예약을 사용하는 것은 또 다른 방법이며, 가치에 따라 물건을 전달하지 않는 것은 세 번째이지만, 이것은 매우 간단하며 프로그래머는 이것을 알아야합니다. 더 중요한 것은 알고리즘 사용입니다. 컴파일러 작성자는 for_each ()의 기능을 정확히 알고 코드를 최적화 할 수 있습니다. 홈 롤 루프에서는 발생할 수 없습니다. const 객체의 for_each ()가 더 좋습니다. Microsoft는 직렬화를 포함하여 여러 가지 방법으로 for_each를 최적화합니다. 또한 parallel_for_each ()가있는 AMP 라이브러리도 있습니다. 기회가 생기면 컴파일러 엔지니어에게 문의하십시오. 콘솔 컴파일러는 사용되는 것을 최적화 할 것입니다. 약간의 닭고기와 계란 문제. 마이크로 소프트는 C ++ 11로 무거워지고 있으며 다음 XBox도 다르지 않을 것이다. 나는 PS4에 대해 전혀 모른다, 우리는 아직 하나도 얻지 못했다.
사용자 지정 할당자는 메모리 문제를 처리하는 한 가지 방법이지만 간과되는 또 다른 옵션은 클래스 기반 new 및 delete를 사용하는 것입니다. 이렇게하면 성능이 크게 향상 될 수 있습니다.
Boost와 STL이 문제 해결에 대한 좁은 견해를 가지고 있다는 개념은 순수한 광기입니다. STL과 Boost의 특성과 정책을 통해 사용자 정의 할 수있는 항목 수에 놀랐습니다. 예를 들어 대소 문자 구분 문자열 비교를 찾으십시오.
긴 링크 시간 및 코드 팽창과 관련하여 새로운 extern 템플릿 이이를 지원해야합니다. 일반적으로 컴파일 시간이 길어지면 과도한 커플 링과 pch의 오용이 발생합니다.
STL을 사용하는 가장 강력한 이유는 STL에 도움을 줄 수있는 수백만의 사람들이 있기 때문입니다. 항상 그렇듯이 조기에 최적화하고 테스트, 테스트, 테스트하지 마십시오.