1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
// Permet expression template + expression template
template <class T, class U> BinaryOp<T, U, Add> operator +(const T& v1, const U& v2)
{
return MakeAdd(v1, v2);
}
// Permet vecteur + expression tempalte
template <class T> BinaryOp<Vector::const_iterator, T, Add> operator +(const Vector& v1, const T& v2)
{
return MakeAdd(v1.begin(), v2);
}
// Permet expression template + vecteur
template <class T> BinaryOp<T, Vector::const_iterator, Add> operator +(const T& v1, const Vector& v2)
{
return MakeAdd(v1, v2.begin());
}
// Permet vecteur + vecteur
BinaryOp<Vector::const_iterator, Vector::const_iterator, Add> operator +(const Vector& v1, const Vector& v2)
{
return MakeAdd(v1.begin(), v2.begin());
} |
Partager