Anzeige:
Ergebnis 1 bis 3 von 3

Thema: c++: iterator traits

  1. #1
    Registrierter Benutzer
    Registriert seit
    11.04.2006
    Beiträge
    69

    c++: iterator traits

    Hi, ich will eine Template-Funktion schreiben, welche als Argumente jeweils den begin- und end-Iterator übergeben bekommt sowie den dazugehörigen Typ. Wie der Name der Funktion bereits erahnen lässt, soll diese generisch in Standartcontainer Elemente löschen. Nun benötige ich als dritten Parameter den Typ, auf den der Iterator zeigt. Ich hab bisher noch nicht viel mit template traits gemacht aber ich denke std::iterator_traits ist so etwa das was ich brauche. Leider wird der code nicht compiliert: „../src/helper.h:8:64: error: ‘std::iterator_traits<_Iter>::value_type’ is not a type“. Weis jemand was daran falsch ist. Auch wenn es vielleicht bereits dafür eine Lösung in der std gibt geht es mir hier vor allem ums Prinzip als den Sinn der Funktion

    Code:
    #pragma once
    
    #include <iterator>
    
    namespace stdmy
    {
    	template<typename T>
    	void deleteByValue(T _begin, T _end, std::iterator_traits<T>::value_type _val)
    	{
    		//kommt noch
    	}
    }

  2. #2
    Registrierter Benutzer
    Registriert seit
    23.05.2004
    Beiträge
    592
    Hi, ich will eine Template-Funktion schreiben, welche als Argumente jeweils den begin- und end-Iterator übergeben bekommt sowie den dazugehörigen Typ. Wie der Name der Funktion bereits erahnen lässt, soll diese generisch in Standartcontainer Elemente löschen.
    Diese Funktion gibt es schon, aber ich gehe davon aus, dass du Gründe hast sie selber zu schreiben.

    Leider wird der code nicht compiliert: „../src/helper.h:8:64: error: ‘std::iterator_traits<_Iter>::value_type’ is not a type“
    Die Fehlermeldung sagt eigentlich schon genau was los ist: Da fehlt ein "typename" für den dritten Parameter.

  3. #3
    Registrierter Benutzer
    Registriert seit
    11.04.2006
    Beiträge
    69
    danke, jetzt gehts!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •