020
15.08.2005, 09:19 Uhr
virtual
Sexiest Bit alive (Operator)
|
@(un)wissender Ob die Objekte alle ein Swap haben, hängt maßgeblich davon ab, wie Du deine Klassen designed hast. Für die ganzen STL Container/Klassen ist aber meist/immer ein swap vorhanden. Dh ich hätte noch erwähnen sollen, daß ein std::swap(a,b) intern eben auch Zuweisungsoperatoren benutzt und im Zweifel besser a.swap(b) zu verwenden ist (abgesehen davon, daß die letztere Version in der Regel auch das schnellere swap ist). Wenn man zB std::map<K,V>::swap macht, stellte man schnell fest, daß an keiner Stelle ein new gemacht wird, sondern lediglich Pointer vertauchst werden, wogegen std::swap(a,b) ein neues Objekt anlegt und dieses Anlegen natücrlich Exceptions werfen kann und damit die Exceptiongarantie untergräbt.
Ich wollte eh in den nächsten tagen mal wieder was auf die HP stellen, dann werde ich das verbessern. Danke für die konstruktive Kritik. -- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21) Dieser Post wurde am 15.08.2005 um 09:20 Uhr von virtual editiert. |