Информация об изменениях

Сообщение Re[2]: Как получить тип по указателю на него? от 27.06.2018 7:23

Изменено 27.06.2018 7:30 rg45

Re[2]: Как получить тип по указателю на него?
Здравствуйте, watchmaker, Вы писали:

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


W>std::remove_pointer_t


Да, но не стоит только забывать, что std::remove_pointer применим не только к указателям, а вообще к любым типам. Возможно, имело бы смысл определить собственную метафунцию, во избежание "сюрпризов".
Re[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>>> : std::remove_pointer<T> {};