C++0x: Free function container concepts



  • Im C++ draft[open-std.org] bin ich über "23.1.6.1 Free function container concepts [container.concepts.free]" gestolpert.

    Weiß da jemand was genaueres? Was der Sinn davon ist?



  • Der STL Syntax wird sich ändern. So sollst du in Zukunft z.B. begin(vec) anstatt vec.begin() oder size(vec) anstatt vec.size() schreiben. Sieht auf den ersten Blick blöd aus macht aber an sich Sinn.

    In dem Abschnitt werden die Konzepte für diese freie Funktionen definiert.

    Sehr toll an der Sache ist, dass es default Implementierungen erlaubt. Zum Beispiel ist der Compiler jetzt schlau genug um bei empty(c), wobei c ein Container ohne c.empty() Methode ist, automatisch ein begin(c) == end(c) draus zu machen. Du brauchst die Methode also gar nicht mehr zu implementieren, falls du keine Lust hast oder du es eh nicht schneller hin kriegst.

    Der Grund warum man diese Funktionen frei macht, ist damit man die default Implementierung nur an einer Stelle haben muss und damit man bestehende nicht STL Container leichter anpassen kann.


Anmelden zum Antworten