다른 곳에서 다른 유형으로 템플릿화할 것으로 예상되는 템플릿 함수가 있습니다.
문제는 두 가지 다른 방법으로 다른 템플릿을 생성하는 특정 형식에 대한 전문화가있는 경우 컴파일 타임에 알고 싶습니다.C++ 템플릿은 주어진 형식에 대해 함수가 오버로드되었는지 확인할 수 있습니까?
template<typename T>
bool tobool(const T&){ throw Exception("Can't cast to bool");};
template<> bool tobool<bool>(const bool &value){ return value;}
here과 같은 기능 존재 여부를 테스트 할 수 있습니다.
tobool이 특수화되었는지 테스트하는 방법은 무엇입니까?
tobool()이 특수화 된 경우 true를 반환하고 그렇지 않은 경우 false를 반환하는 isbool()을 생성한다고 가정 해 보겠습니다.
정확하게 이해합니까? : 각 유형 T에 대해 tobool이 T에 특수화되었는지 여부를 나타내는 메타 기능을 원하십니까? –
그래, T가 일반 또는 특수화 된 토볼을 사용하는지 알아야합니다. –
그래서 컴파일 타임에 그 존재를 확인하고 그 결과로 무엇을 할 수 있습니까? –