Ich habe einige generische Funktion, die eine Variable des Typs <T>
zurückgibt. Ich übergebe der Funktion 2 Iteratoren. Dann versuche ich die Größe des Vektors mit der Funktion distance
zu berechnen. Innerhalb der Funktion definiere ich eine neue Typdefinition, die v_size
heißt, aber der <T>
Typ des Vektors ist unbekannt. Wie kann ich die Größe des Vektors berechnen, indem ich nur die Iteratoren überlasse?bestimmen Variablentyp durch Iteratoren C++
template<class In, class T>
T my_func(In b, In e)
{
typedef typename vector<T>::size_type v_size;
v_size size = distance(b, e);
...
...
}
'T' wird nicht unbekannt sein, wenn Sie Ihre Funktion instanziieren. Es ist mir nicht klar, auf welches Problem Sie tatsächlich stoßen. Bitte gib ein [MCVE] an. –
Dieser Code ist ziemlich seltsam: Wenn Sie wissen * 'In' ist' std :: Vektor :: Iterator ', warum haben Sie zwei Vorlage Argumente? Wenn nicht, warum verwenden Sie dann 'std :: vector :: size_type'? –
MSalters