#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 не нужен, а во-вторых, он нужен для указания того, что зависимое имя является типом.
Комментариев нет:
Отправить комментарий