MyBaseClass에서 파생 된 모든 객체에 대해 default_delete < _Ty>을 전문으로하고 싶습니다.default_delete의 부분 특수화
이template <typename T>
struct default_delete<typename enable_if<is_base_of<MyBaseClass, T>::value, T>::true_type>
{
...
};
컴파일러는 내 타입 매개 변수 'T'가 사용되고 있음을 인식 할 수없는 것, 그것은 '유형 이름'키워드에서 '다운 스트림'이라고 주어진 이해할 수있다 : 이것은 나의 가장 좋은 시도였다. 내가 성취하려고하는 것이 가능한가?
오류를 게시하고 (오류가있는 것이 가장 바람직 함) 게시하십시오. – Oguk
매개 변수 선언이 평가되지 않은 상황입니다 (즉, 'T'는 주어진 매개 변수에서 추론 할 수 없음). 'default_delete'는 SFINAE 타입 표현식을 허용하는 추가 매개 변수를 가져야합니다. 그렇지 않으면 불가능합니다 (AFAIK). 또는 자체 삭제자를 구현할 수도 있습니다. – 0x499602D2
'enable_if :: value, T> :: type'이 아니겠습니까? –
Pradhan