Сообщение Re[3]: Как получить тип по указателю на него? от 28.06.2018 6:25
Изменено 28.06.2018 6:34 rg45
Re[3]: Как получить тип по указателю на него?
Здравствуйте, rg45, Вы писали:
R>Да, но не стоит только забывать, что std::remove_pointer применим не только к указателям, а вообще к любым типам. Между тем, ТС собирается применять это к алиасам типов, для которых не известно, является ли данный тип указателем, или чем-то другим. Возможно, имело бы смысл определить собственную метафункцию, во избежание "сюрпризов". Ну хотя бы так:
Можно проще:
R>Да, но не стоит только забывать, что std::remove_pointer применим не только к указателям, а вообще к любым типам. Между тем, ТС собирается применять это к алиасам типов, для которых не известно, является ли данный тип указателем, или чем-то другим. Возможно, имело бы смысл определить собственную метафункцию, во избежание "сюрпризов". Ну хотя бы так:
Можно проще:
template <typename T>
using MySpecialRemovePointer = std::enable_if<std::is_pointer<T>>::value, std::remove_pointer_t<T>>;
Re[3]: Как получить тип по указателю на него?
Здравствуйте, rg45, Вы писали:
R>Да, но не стоит только забывать, что std::remove_pointer применим не только к указателям, а вообще к любым типам. Между тем, ТС собирается применять это к алиасам типов, для которых не известно, является ли данный тип указателем, или чем-то другим. Возможно, имело бы смысл определить собственную метафункцию, во избежание "сюрпризов". Ну хотя бы так:
Можно проще:
R>Да, но не стоит только забывать, что std::remove_pointer применим не только к указателям, а вообще к любым типам. Между тем, ТС собирается применять это к алиасам типов, для которых не известно, является ли данный тип указателем, или чем-то другим. Возможно, имело бы смысл определить собственную метафункцию, во избежание "сюрпризов". Ну хотя бы так:
Можно проще:
template <typename T>
using MySpecialRemovePointer = std::enable_if<std::is_pointer<T>::value, std::remove_pointer_t<T>>;