История изменений
Исправление
AIv,
(текущая версия)
:
сравните
template <int D, typename T1, typename T2>
inline typename std::enable_if<(D>1), Vec<D,decltype(T1()+T2())>>::type
operator + (const Vec<1, T1> &a, const Vec<D, T2> &b){
Vec<D,decltype(T1()+T2())> r;
for(int i=0; i<D; i++) r.p[i] = a.p[0]+b.p[i];
return r; }
template <int D, typename T1, typename T2>
inline Vec<D,decltype(T1()+T2())>>
operator + (const SvVec<T1> &a, const Vec<D, T2> &b){
Vec<D,decltype(T1()+T2())> r;
for(int i=0; i<D; i++) r.p[i] = a.val+b.p[i];
return r;
}
У меня, видимо, какая-то своя линейная алгебра, провинциальная, из церковно-приходской школы.
Вы на себя наговариваете. Ваша линейная алгебра соврешенно номальная, классическая, и есть например в матлабе - там даже для скалярного умножения двух векторов нужно что бы один был строкой а другой столбцом. Все очень строго, но жутко неудобно (в тех задачах которые я решаю).
У меня же например операция & перегужена для покомпонентного перемножения векторов - в линейке нету, а в жизни сплошь и рядом встречается...
Исходная версия
AIv,
:
сравните
template <int D, typename T1, typename T2>
inline typename std::enable_if<(D>1), Vec<D,decltype(T1()+T2())>>::type
operator + (const Vec<1, T1> &a, const Vec<D, T2> &b){
Vec<D,decltype(T1()+T2())> r;
for(int i=0; i<D; i++) r.p[i] = a.p[0]+b.p[i];
return r; }
template <int D, typename T1, typename T2>
inline Vec<D,decltype(T1()+T2())>>
operator + (const SvVec<T1> &a, const Vec<D, T2> &b){
Vec<D,decltype(T1()+T2())> r;
for(int i=0; i<D; i++) r.p[i] = a.val+b.p[i];
return r; }
У меня, видимо, какая-то своя линейная алгебра, провинциальная, из церковно-приходской школы.
Вы на себя наговариваете. Ваша линейная алгебра соврешенно номальная, классическая, и есть например в матлабе - там даже для скалярного умножения двух векторов нужно что бы один был строкой а другой столбцом. Все очень строго, но жутко неудобно (в тех задачах которые я решаю).
У меня же например операция & перегужена для покомпонентного перемножения векторов - в линейке нету, а в жизни сплошь и рядом встречается...