donc I've written an answer qui utilise une fonction pour sélectionner le type sans canevas d'objet.Comment puis-je éviter Explicitement Spécialiste des fonctions de recherche avec l'argument sans canevas charge
J'ai défini les types:
struct pt {
double t;
double e;
double c_vis;
double c_invis;
};
struct pt_weighted : pt {
double sigma;
};
Et ma fonction ressemble sans canevas:
template <typename T>
void foo() {
for(T point; dataFile >> point;) {
set.curve.push_back(point); // store point
data_numPoints++; // collect some stats
set.curveAvg += point.e;
}
}
Étant donné que minimizator_weighted
décide quel type à utiliser lors de l'exécution, j'appelle foo
avec:
minimizator_weighted ? foo<data_set::pt_weighted>() : foo<data_set::pt>();
Richard Hodges is suggesting en utilisant Argument Dependent Lookup (ADL) pour éviter les "fonctions de modèle explicitement spécialisées". Je ne suis pas sûr de ce qu'il veut dire alors j'ai pensé que j'ouvrirais une nouvelle question afin que lui ou quelqu'un puisse expliquer plus loin dans une réponse.