Ce que je veux dire est le suivant. Je veux une fonction template qui prend deux itérateurs vectoriels (ou deux pointeurs sur array of double) et renvoie un double qui est en quelque sorte lié aux itérateurs vectoriels ou aux pointeurs de tableau que je passe. Cependant, je veux que cela fonctionne pour double ou int, ou n'importe quel type arithmétique.Dans une fonction de modèle C++, puis-je retourner un type d'argument déréférencé?
Je pense que je ne suis pas autorisé à dire:
template <class T>
T* func(T Begin, T End)
T new_variable = Begin + 5;
return (*new_variable);
}
parce que le compilateur ne comprendront pas ce T * signifie. Une solution que je pensais est de prendre ce que je suis en train de revenir et en faire un troisième argument:
template <class T>
void func(T Begin, T End, T* new_variable)
new_variable = Begin + 5;
return (*new_variable);
}
Est-ce que ce travail? Même si c'est le cas, y a-t-il une autre façon de faire ce que j'essaie de faire? (Désolé si je ne l'ai pas été assez clair.)
Notez que le compilateur comprend 'T *' dans le type de retour d'une fonction de modèle; le problème est que le type de 'new_variable' n'est pas' T * '. – outis