I was using std::vector in my program and now I made a realization that Eigen::VectorXd will reduce my task in great deal. So I shifted to using Eigen. But I don't want to change the program entirely so I thought of using Templates for some previously defined functions.
I'm new to C++ and template programming is little bit confusing I'm not able to think beyond the below program which is wrong.
using namespace Eigen;
template<class T>
T getvec(T& var)
{
T res;
res[0] = var[0]*3;
res[1]=var[1]*3;
res[2]=var[2]*3;
return res;
}
int main(){
std::vector<double> a(3,1);
Eigen::VectorXi b(3);
b.setOnes();
auto x= getvec(a);
auto y=getvec(b);
}
Is it possible to write a template function which can take std::vector or Eigen::VectorXd as paramters?
I am in need of a of function as below which can take both type.
std::vector<double> getTransform(std::vector<double>& vec)
{
std::vector<double> res;
res[0] = vec[0]*3.14;
...........
...........
return res;
}
&band&cin the calls. - S.M.std::vector<double> b[3];An array of 3 vectors? 2)auto y=getvec(&b);-- Why are you passing the address of the item here, when the function takes a reference? - PaulMcKenzie