Factorisation de code de surcharge des différents opérateurs
Gentlwomens, gentlemens
J'ai une question : supposons un code qui permette de définir l'action des opérateurs sur un conteneur. Je trouve qu'écrire le code pour les différents opérateurs (dans le cas ci dessous) assez redondant.
Est ce qu'il y a un moyen de factoriser (sûrement un concept que je n'ai pas) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| template <class T>
std::vector<T> &operator+(T elementToAdd, const std::vector<T> & vector)
{
std::vector<T> result(vector.size());
for (int i=0; i<result.size(); i++)
{
result[i]= vector[i]+ elementToAdd;
}
return result;
}
template <class T>
std::vector<T> &operator-(T elementToRemove, const std::vector<T> & vector)
{
std::vector<T> result(vector.size());
for (int i=0; i<result.size(); i++)
{
result[i]= vector[i]- elementToRemove;
}
return result;
} |