Odpověď na názor

Odpovídáte na názor ke článku Podpora nového standardu C++ v překladačích.

  • 23. 9. 2011 14:39

    Sten (neregistrovaný)

    [5] Iterátory nemusí pořád vyhodnocovat metodu end, stačí si iterátor na konec na začátku uložit. To je mimochodem doporučené (vyhodnocení end() pro std::list je docela pomalé) a tak to i dělá implementace toho range-based for cyklu:
    for (auto it = c.begin(), end = c.end(); it != end; ++it) { ... }

    Také není pravda, že v C++11 musí kontejnery implementovat metody begin a end, aby fungovaly v range-based for cyklu. Ten totiž používá funkce std::begin a std::end. Stačí je tedy pro váš kontejner (a vaše iterátory) přetížit.