Problem mit ostream_iterator



  • Hallo,

    folgendes Problem:

    Ich habe ...

    typedef boost::shared_ptr<irgendwas1> ptr;
    std::list<ptr> list;
    

    ... und kann nun mit ...

    list.push_back(ptr(new irgendwas2("test",1)));
    

    ... Objekete an die Liste anhängen. (irgendwas2 ist abgeleitet von irgendwas1)

    Soweit go gut! Jetzt das Problem: Ich möchte die Liste nun mit ...

    std::copy(list.begin(), list.end(), std::ostream_iterator<ptr>(std::cout, "\n"));
    

    ... ausgeben. Ich erhalte dann aber nicht den Inhalt, sondern eine Liste von Adressen. Was mache ich falsch? Wie kann ich wieder auf die Elemente meider Liste zugreifen?

    Für jeden Tipp dankbar
    Stefan



  • Naja bind mal <boost/iterator_adapters.hpp> ein und verwende boost::indirect_iterator.

    http://www.boost.org/libs/utility/indirect_iterator.htm


Log in to reply