Was ich meine, ist das Folgende. Ich möchte eine Template-Funktion, die zwei Vektor-Iteratoren (oder zwei Zeiger auf ein Doppel-Array) benötigt und ein Double zurückgibt, das irgendwie mit den Vektor-Iteratoren oder Array-Zeigern in Beziehung steht, die ich überlasse. Ich möchte jedoch, dass dies für double oder int oder einen beliebigen arithmetischen Typ funktioniert.Kann ich in einer C++ - Template-Funktion einen dereferenzierten Argumenttyp zurückgeben?
Ich glaube, ich bin nicht erlaubt zu sagen:
template <class T>
T* func(T Begin, T End)
T new_variable = Begin + 5;
return (*new_variable);
}
, da der Compiler nicht verstehen, was T * Mittel. Eine Lösung, die ich gedacht ist zu nehmen, was ich versuche, es ein drittes Argument zurück und machen:
template <class T>
void func(T Begin, T End, T* new_variable)
new_variable = Begin + 5;
return (*new_variable);
}
Wird diese Arbeit? Selbst wenn ja, gibt es eine andere Art zu tun, was ich versuche zu tun? (Sorry, wenn ich nicht klar genug.)
Beachten Sie, dass der Compiler 'T *' im Rückgabetyp einer Vorlagenfunktion versteht; Das Problem ist, dass der Typ von '* new_variable' nicht' T * 'ist. – outis