Для дерева kd у меня есть класс Node
, который выглядит следующим образом:
template<typename DataType, unsigned int Dim>
struct Node
{
DataType* pos;
DataType payload;
struct Node<DataType, Dim>* left;
struct Node<DataType, Dim>* right;
};
Я пытаюсь установить тип кортежа, который объединяет расстояние от узла запроса до найденного соседаи сам соседний узел выглядит так:
using std::pair<float, Node<typename DataType, Dim>*> = QueryResult;
к сожалению, приведенный выше код выдает мне ошибку:
[...] ошибка: неверное количество аргументов шаблона (1,должно быть 2)
Итак, я попробовал несколько разных вещей, следуя некоторым темам, которые я нашел здесь.Сначала я подумал, что, может быть, второй параметр должен быть объявлен без чего-либо, но внутри класса Node.
using std::pair<float, Node<DataType, Dim>*> = QueryResult;
[...] ошибка: идентификатор шаблона может не отображаться в объявлении использования
, поэтому я попытался сообщить компилятору, что это вложенный шаблон;
using std::pair<float, template Node<typename DataType, Dim>*> = QueryResult;
[...]: аргумент шаблона 2 недопустим
Было также решение с использованием адаптера класса , но оно также не работало.Я не уверен, как я могу настроить то, что я пытаюсь сделать здесь.Любая помощь или указатели будут с благодарностью.Я не очень разбираюсь в шаблонном программировании, но использую этот проект для расширения своих знаний.
Спасибо!