궁금합니다. 일반 프로그래밍 (GP)이 업계에서 많이 사용됩니까?
팀과 프로젝트의 상황에 따라 크게 달라집니다.
예를 들어, 비디오 게임에서 종종 코드는 "가장 단순하고"(아마도 너무 단순하지만) 대규모 아키텍처입니다. 게임 개발자는 수정해야 할 문제가 많고 메타 프로그래밍 (C ++ 내부의 언어를 이해하기 어려운 별도의 추상화)을 사용하고 싶지 않기 때문입니다.
동시에 템플릿의 기본 사용법은 해당 상점에서도 일반적이며 일부 엔진의 일부 특정 기능에서 일부 템플릿 기반 최적화를 볼 수 있습니다.
그러나 게임 개발에서 대부분의 사람들은 메타 프로그래밍을 피할 것입니다.
이제 극단적 인 측면에서, 일반적이지 않은 일부 복잡하거나 많은 처리 응용 프로그램은 일반적이지 않은 성능 및 유연성 (컴파일 타임) 요구 사항으로 인해 일종의 무거운 메타 프로그래밍이 필요합니다. 나는 지금 하나에서 일하고 있습니다.
흔하지는 않지만 존재하지만 일부 틈새 영역 (일부 과학적 또는 숫자를 많이 사용하는 내장 컨텍스트)에서는 메타 프로그래밍에 대해 많이 알고 있거나 배우기를 원하는 사람들이 필요합니다.
중간에 대부분의 사람들은 메타 프로그래밍을 "디자이너"가 아닌 "클라이언트"로 사용합니다. 라이브러리는 코드를위한 도구이고 지금까지 작업했던 사용자 정의 유형에 적응할 수있는 라이브러리보다 더 나은 것이기 때문에 대부분의 메타 프로그래밍 코드는 라이브러리에 번들로 제공됩니다.
Boost (http://boost.org)는 일련의 라이브러리이며, 일부는 무거운 메타 프로그래밍 블랙 매직으로 만들어졌으며 많은 C ++ 상점에서 STL의 확장 인 "STL ++"로 사용됩니다. 모든 상점이 컴파일러 호환성과 같은 여러 가지 이유로 사용하지는 않습니다 (일부 부스트 라이브러리는 컴파일러가 감정을 상하게 할 때마다 사면을 용서 할 수 있습니다 ...) 도구가 어떻게 작동하는지 (Boost.Spirit 이해하기 ...)
당신이 일하는 회사가 무엇이든, 어떤 사람들은이 패러다임을 사용할 것이고, 어떤 사람들은 그 패러다임을 전혀 사용하지 않거나 심지어 금지 할 것입니다.
아무도 같은 요구, 상황 또는 팀을 가지고 있지 않기 때문에 합의가 없습니다.
그러나 여전히 분명히 사용됩니다. 어쩌면 메일 링리스트에서 누가 boost를 사용하여 더 실제적인 예를 갖도록 요청할 수 있습니까?