나는 std :: enable_if를 처음 사용하고 어떻게 사용하는지 궁금하다. 나는이 가능하여 표준 : enable_if을 할 수 C++ std :: enable_if
template<int a, int b>
class foo {
}
가 지금은 단지가 10 에 B와 동일 + 때 인스턴스화 할 : 나는 템플릿 클래스가?
두 번째 질문 : 내가
template<int a, int b>
class foo {
int c;
}
가 난 단지
a = 5.
가 어떻게 사용 표준 : enable_if 그렇게 할 때 C를 갖고 싶어 클래스 foo는의 구성원이 있다면? std :: enable_if를 사용하는 올바른 사례입니까?
를 사용하지 마십시오. * 함수 * 템플릿의 * 추론 * 유형에만 해당됩니다. –
@KerrekSB : 또는 클래스 템플릿의 특수화를 사용하지 않도록 설정하십시오. 두 가지 모두 오랫동안'boost :: enable_if'의 핵심적인 사용법이었으며, 둘 다 유효한 유즈 케이스입니다. 이 작업은 대개 템플리트를 여러 번 사용하지 않고 단순히 다른 템플리트를 선택하는 기본 템플리트의 여러 전문화의 컨텍스트에서 수행됩니다. –
@ DavidRodríguez-dribeas : 좋은 지적입니다. 나는 지금까지 클래스 템플릿 전문화에 많은 것을 사용하지 않았다 ... –