Lo que quiero decir es lo siguiente. Quiero una función de plantilla que tome dos iteradores de vector (o dos punteros a una matriz de doble) y devuelve un doble que de alguna manera está relacionado con los iteradores de vector o los punteros de matriz que paso. Sin embargo, quiero que esto funcione para el tipo doble o int, o cualquier tipo aritmético.En una función de plantilla C++, ¿puedo devolver un tipo de argumento desreferenciado?
creo que no se me permite decir:
template <class T>
T* func(T Begin, T End)
T new_variable = Begin + 5;
return (*new_variable);
}
porque el compilador no va a entender lo T * medios. Una solución en la que pensé es tomar lo que estoy tratando de devolver y convertirlo en un tercer argumento:
template <class T>
void func(T Begin, T End, T* new_variable)
new_variable = Begin + 5;
return (*new_variable);
}
¿Funcionará? Incluso si es así, ¿hay otra forma de hacer lo que estoy tratando de hacer? (Lo siento si no he sido lo suficientemente claro.)
Tenga en cuenta que el compilador no entiende 'T *' en el tipo de retorno de una función de plantilla; el problema es que el tipo de '* new_variable' no es' T * '. – outis