оператор разрешения области видимости (::) к типу

Какой синтаксис использовать при выводе типа вида

template <class T>
using Type = std::remove_pointer_t<std::vector<T>*>::value_type;

чтобы Type == T Желательно одним стейтментом.

Текущая запись выдаёт ошибку С2061.


Ответы (1 шт):

Автор решения: AR Hovsepyan

Если таким способом хотите выразить: template <class T> using Type = T;, то:

template <class T>
using Type =  typename std::remove_pointer_t<std::vector<T>*>::value_type;

Потому что нужно указывать что такое Т, и std::remove_pointer_t<std::vector<T>*> это фактически std::vector<T>, а еще нужно указывать, что зависимое имя value_type, является именем типа.

→ Ссылка