I have a c++ header defining vectors as:
template <class T>
class c_vec {
public:
std::array<T, 3> V;
c_vec(T x = 0, T y = 0, T z = 0) { V = {x, y, z}; };
void addition(T W) { for (int ii = 0; ii < 3; ++ii) { V.at(ii) += W.at(ii); }; };
};
using c_coor = c_vec<double>;
using c_indexdbl = c_vec<double>;
using c_index = c_vec<int>;
However, when I try to use addition:
c_coor coor_a = {};
c_coor coor_b = {1, 2, -1}
coor_a.addition(coor_b);
I get an error:
error: no matching function for call to 'c_vec<double>::addition(c_coor)'
Why? How should I define the class c_vec and its aliases?
Aucun commentaire:
Enregistrer un commentaire