저는 템플릿에 크게 의존하는 C++ (0x)로 이미지 처리 라이브러리를 만들고 있는데,이 템플릿이 사용자의 컴파일 시간에 미칠 영향에 대해 걱정하고 있습니다. 예를 들어 이미지 클래스를 ns :: Image로 정의했고 ns :: PixRGB, ns :: PixRGBA, ns :: PixHSV 등과 같은 여러 픽셀 유형이 있습니다.라이브러리의 템플릿 인스턴스화
이미지 처리 기능, 예. 이제
template<class T, class S>
void ns::drawCircle(ns::Image<T> & img, S color, ns::Circle);
, 나는 사용자의 95 %가 단지 ns::drawCircle<PixRGB<byte>, PixRGB<byte>>(...)
를 호출 할 것이라는 점을 알고있다, 그래서 여전히 컴파일러는 사용자 아무것도 컴파일 할 수 있도록하는 동안 명시 적 기능의 이러한 유형의 단지 일부 조합을 인스턴스화 싶습니다 나는 명시하지 않았다. 이렇게하면 공유 라이브러리의 컴파일 속도와 헤더 전용 라이브러리의 유연성을 유지할 수 있습니다.
이 유형의 것이 가능합니까? 그렇다면 구문은 무엇입니까?
제거 메타 프로그래밍 태그 –