#cpp #шаблоны_с++
Есть такой код:
template< typename T>
class A
{
public:
typedef std::map::const_iterator Const_iterator;
};
g++ 7.3.0 выдает такую ошибку:
main.cpp:8:36: error: template argument 2 is invalid
typedef std::map::const_iterator Const_iterator;
В чем причина?
Ответы
Ответ 1
Попробуйте typedef typename std::map::const_iterator Const_iterator; Или using Const_iterator = typename std::map ::const_iterator; У вас две ошибки - во-первых, typename при вполне объявленном параметре типа T не нужен, а во-вторых, он нужен для указания того, что зависимое имя является типом.
Комментариев нет:
Отправить комментарий