Мне нужно получить 2 типа параметров для моего класса: T1, который является классом с шаблоном, и T2, который является параметром для шаблона T1 ,Вложенные шаблоны (например, шаблон <typename T <typename templateArgumentFor_T >>)
В моем случае тип Вершина (есть 2, один наследуется от другого), а тип данных хранит вершину (имя/идентификатор в моем случае).
Я хочу, чтобы иметь возможность написать что-то вроде этого:
template < typename VertexType < typename VertexIDType > >
(который дал мне ошибку: C2143 ошибка синтаксиса: отсутствующий «» перед «<»)
Так что мой класс было бы что-то вроде этого: (. 'List' мой (не ЗППП) реализация для связанного списка)
class Graph
{
public:
Graph(const List<VertexType<VertexIDType>>& verticesList);
VertexType<VertexIDType>& getVertexByID(const VertexIDType& ID) const;
private:
List<VertexType<VertexIDType>> vertices;
};
Я также попытался template <typename VertexType, typename VertexIDType>
, но потом я получил ошибку в функции Graph(const List<VertexType<VertexIDType>>& verticesList);
(C2947 ожидая '>' прекратить шаблонный аргумент-список, найденный '<')
и этот template < typename VertexType < template <typename VertexIDType> > >
(который также дал мне ошибку C2143)
Я действительно такой человек, который пытается сам все выяснить, но этот получает разочарование. Я не мог найти ответ, который я понял, если/как реализовать в моем коде. Я закончил курс ООП (C++). У меня есть опыт работы с шаблонами. Я написал шаблоны, которые успешно получили 1 или 2 аргумента, но ничего подобного.
Пожалуйста, помогите мне решить эту проблему, предпочтительно настолько элегантно, насколько это возможно :)
Спасибо.
Большое спасибо! –