LINUX.ORG.RU

История изменений

Исправление zaz, (текущая версия) :

Вот добавил более «правильный фикс»

constexpr int DMAX(int n1, int n2) { return (n1 > n2) ?n1 :n2; };

template <int D1, int D2, typename T1, typename T2>
inline Vec<DMAX(D1,D2), decltype(T1()+T2())>  operator + (const Vec<D1,T1> &a, const Vec<D2,T2> &b){
        Vec<DMAX(D1,D2), decltype(T1()+T2())> r;
        for(int i=0; i<DMAX(D1,D2); i++) {
          if((i<D1) && (i<D2)) r[i] = a[i]+b[i];
          else if(i<D1) r[i] = a[i];
          else r[i] = b[i];
        }
        return r;
}

Исходная версия zaz, :

Вот добавил более правильный «фикс»

constexpr int DMAX(int n1, int n2) { return (n1 > n2) ?n1 :n2; };

template <int D1, int D2, typename T1, typename T2>
inline Vec<DMAX(D1,D2), decltype(T1()+T2())>  operator + (const Vec<D1,T1> &a, const Vec<D2,T2> &b){
        Vec<DMAX(D1,D2), decltype(T1()+T2())> r;
        for(int i=0; i<DMAX(D1,D2); i++) {
          if((i<D1) && (i<D2)) r[i] = a[i]+b[i];
          else if(i<D1) r[i] = a[i];
          else r[i] = b[i];
        }
        return r;
}