Witam.
W swoim kodzie próbuję jako argument funkcji wykorzystać wektor wektorów przy pomocy zwykłego wektora oraz wektora3d z biblioteki eigen.
Kod funkcji prezentuje się następująco.(środek jeszcze nie zrobiony, gdyż napotkałem problemy szybciej)
template <typename T>
void print(urg_t *urg, long data[], unsigned short intensity[],
int data_n, long time_stamp,std::vector<Eigen::EigenBase<T> > & C,int ColsIteration)
{
(void)urg;//wyswietlanie calego pomiaru
printf("# n = %d, time_stamp = %ld\n", data_n, time_stamp);
for (int i = 0; i < data_n; ++i) {
printf("%d, %ld, %d\n", i, data[i], intensity[i]);
C(i,ColsIteration) =static_cast<double>(data[i]);
}
}
Wywołanie oraz konstruktor wektorów
std::vector<Eigen::Vector3d> Measures;
print(&urg, data, intensity, n, time_stamp, Measures,ColsIteration);
Przy kompilacji wyświetlają się następujące błędy:
error: no matching function for call to ‘print(urg_t*, long int*&, short unsigned int*&, int&, long int&, std::vector<Eigen::Matrix<double, 3, 1> >&, int&)’
note: candidate is:
: note: template<class T> void print(urg_t*, long int*, short unsigned int*, int, long int, std::vector<Eigen::EigenBase<Derived> >&, int)
Nie za bardzo jestem w stanie sobie z tym poradzić, próbowałem już kilku metod m.in. tych podanych w dokumentacji Eigena, ale nie za bardzo zadziałały.
Z góry dzięki za pomoc