3
라이브러리 및 해당 프로젝트에 종속 된 여러 프로젝트가 있다고 가정합니다. 라이브러리 헤더에는 이미 일부 부분 클래스 특수화가 있습니다. 각 종속 프로젝트가 자체적 인 부분 전문화로 재정의 할 수있게하고 싶습니다. 성능상의 이유로이 모든 것을 정적으로 달성해야합니다. 다음은 간단한 코드입니다.종속 프로젝트의 부분 C++ 템플릿 특수화
도서관 코드 :
template <class A, class B, class Enable=void>
struct Widget;
struct Foo
{
};
template <class B>
struct Widget<Foo, B>
{
};
사용자 코드 :
template <class B>
struct DoSpecialize;
template <class B>
struct Widget<Foo, B, enable_if< DoSpecialize<B> >::type
{
};
문제는 여기에 우리가 같은 전문화의 여러 정의로 끝날 것입니다. 어딘가에 disable_if<>
이 필요하다고 생각합니다. 어떻게 이것을 피할 수 있을까요?
마지막 전문화에서 'B'는 실제로 특정 유형입니까? – aschepler
아니요, 템플릿 매개 변수입니다 ... 고정 질문 – paperjam