Solo para estar seguro, por lo que he leído y probado, ¿no puedo poner un argumento predeterminado en una plantilla de función correcta? He recogido tanto de mi compilador Y de lo que otros han respondido con ... Lo estoy preguntando porque soy un principiante y algunas de las respuestas más técnicas son difíciles de entender. ¿Hay una solución para esto? Estoy intentando crear una función encontrarMax que utiliza un operador de relación por defecto pero con la opción de sobrecargar ... es decir:Argumento predeterminado en la plantilla de función C++
template <typename Type, typename Compare = std::less<Type> >
Type FindMax(std:vector<Type> &vec, Compare comp = Compare()) {
return *std::max_element(...
}
supongo que podría hacer una clase para esto, pero parece que un montón de trabajo cuando todo lo que realmente quiero es una función ... ¡Gracias!
debo añadir otra pregunta así por algo que yo he visto antes:
¿Qué hace esta función tempate, específicamente, ¿cuál es la (cmpFn) ...) argumento predeterminado haciendo?
template <typename ElemType>
ElemType FindMax(Vector<ElemType> &v, int (cmpFn)(ElemType, ElemType) = OperatorCmp)
Posible duplicado de * [Valor predeterminado de la función de plantilla C++] (http://stackoverflow.com/questions/3301362/c-template-function-default-value) *. –