Re[2]: Как получить тип по указателю на него?
От: rg45 СССР  
Дата: 27.06.18 07:23
Оценка: 15 (2)
Здравствуйте, watchmaker, Вы писали:

LK>>автоматически вывести тип, на который указывает указатель, имея только тип самого указателя.


W>std::remove_pointer_t


Да, но не стоит только забывать, что std::remove_pointer применим не только к указателям, а вообще к любым типам. Между тем, ТС собирается применять это к алиасам типов, для которых не известно, является ли данный тип указателем, или чем-то другим. Возможно, имело бы смысл определить собственную метафункцию, во избежание "сюрпризов". Ну хотя бы так:

template <typename, typename = void>
struct MySpecialRemovePointer;

template <typename T>
struct MySpecialRemovePointer<T, std::enable_if_t<std::is_pointer<T>::value>> : std::remove_pointer<T> {};
--
Отредактировано 28.06.2018 6:28 rg45 . Предыдущая версия . Еще …
Отредактировано 27.06.2018 7:40 rg45 . Предыдущая версия .
Отредактировано 27.06.2018 7:30 rg45 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.