코드베이스에 여러 "리소스"가 있습니다. 모두 클래스이며 하나의 클래스를 제외하고 동일한 인터페이스를 공유합니다. ShaderProgram은 단지 한 가지 방법 만 다르며 정점 파일과 프래그먼트 파일의 파일 이름에 두 개의 문자열이 필요합니다.템플릿 전문화로 해결할 수 있습니까?
두 개의 파일이 필요하고 다른 템플릿이 필요하기 때문에 쉐이더 1을 제외한 모든 리소스를 처리하는 ResourceManager라는 템플릿 클래스가 있습니다. 템플릿 전문화로이를 해결할 수 있습니까? 그것은 ResourceManager가 GetOrLoadFromFile (string, string) 버전이 아닌 버전 (version)을 볼 수 있어야합니다. 반면에 다른 버전은 반대로, (string)과 not (string, string)를 볼 수 있습니다. 또한 AttemptLoad도 치료가 필요합니다. 이 코드에 대한 솔루션을 만들려면 어떻게해야합니까? 템플릿 전문화를 한 번도 해보지 않았습니다.
이것은 좋은 생각입니다. 이렇게하는 것이 좋습니다. – EddieV223
ResourceManager :: AttempLoad (const LoadConfiguration)를 호출하는 것이 가능하지 않습니까? 단일 문자열 클래스는 무엇입니까? 귀하의 모범을 막을 수있는 방법은 없습니다. –
EddieV223
AttempLoad는 올바른 유형의 LoadConfiguration에 대한 dynamic_cast를 수행하려고합니다. 예, 어떤 의미에서는 컴파일 시간 검사에서 런타임 검사로 이동하고 있습니다. 그러나 다른 의미에서 ExtendedLoadConfiguration 대신 LoadConfiguration을 전달하면 빈 두 번째 문자열을 전달하는 것과 똑같이 처리해야합니다 (가능한 경우 쉽게 처리해야 함). 나는 표준 및 확장 성 API의 이점과 편안함이이 문제보다 더 중요하다고 생각한다. – Vadim