Type>::value ?
ptr получаю в шаблоне функции, Type выводится через шаблон
при выводе функции
name
у
typeid(decltype(*ptr)) и typeid(Type)
, значения совпадают
Какого типа ptr по-твоему?
typeid() игнорирует (всегда игнорировал) квалификаторы и ссылки, поэтому с такой проверкой стоит быть осторожным http://eel.is/c++draft/expr.typeid#4
вы пишете так, будто с помощью decltype(*ptr) хотите узнать тип, с которым инстанцировался шаблон, но в итоге получаете тип lvalue выражения *ptr, которое будет ссылкой. по всей видимости, вы хотите написать decltype(ptr)::element_type
Обсуждают сегодня