Я бы хотел специализировать default_delete < _Ty> для всех объектов, выведенных из MyBaseClass. Это была моя лучшая попытка:Частичная специализация для default_delete
template <typename T>
struct default_delete<typename enable_if<is_base_of<MyBaseClass, T>::value, T>::true_type>
{
...
};
Компилятор, кажется, не в состоянии признать, что мой тип параметра «T» используется, что вполне понятно, учитывая, что она является «вниз по течению» от «TYPENAME» ключевое слово. Это то, что я пытаюсь сделать возможным?
Пожалуйста, разместите ошибку, которую вы получаете (и желательно, минимальный пример, показывающий ошибку). – Oguk
Объявление параметра - это необоснованный контекст (т. Е. 'T' не может быть выведен из заданного параметра). 'default_delete' должен иметь дополнительный параметр, который позволяет выражать выражения типа SFINAE, иначе это невозможно (AFAIK). В качестве альтернативы вы можете реализовать свой собственный дебит. – 0x499602D2
Не должно быть 'enable_if :: value, T> :: type'? –
Pradhan