Wenn Sie viele Boost-Bibliotheken verwenden und hin und wieder Daten in Objekten mit std::swap()
tauschen, sollten Sie stattdessen auf boost::swap()
zugreifen. Diese Funktion wird von Boost.Swap zur Verfügung gestellt. Um sie einsetzen zu können, müssen Sie die Headerdatei boost/swap.hpp
einbinden.
boost::swap()
in Aktion#include <boost/swap.hpp>
#include <boost/array.hpp>
#include <iostream>
int main()
{
char c1 = 'a';
char c2 = 'b';
boost::swap(c1, c2);
std::cout << c1 << c2 << '\n';
boost::array<int, 1> a1{{1}};
boost::array<int, 1> a2{{2}};
boost::swap(a1, a2);
std::cout << a1[0] << a2[0] << '\n';
}
boost::swap()
macht nichts anderes als std::swap()
. Da viele Boost-Bibliotheken jedoch Spezialisierungen anbieten, um einen Austausch von Daten schneller durchzuführen, und diese Spezialisierungen im Namensraum boost
definiert sind, kann mit boost::swap()
von ihnen profitiert werden. So wird im Beispiel 71.1 im ersten Fall innerhalb von boost::swap()
auf std::swap()
zugegriffen, um die Werte der beiden char
-Variablen auszutauschen. Im zweiten Fall wird die von Boost.Array spezialisierte Funktion boost::swap()
verwendet, die für einen Austausch von Daten in Arrays vom Typ boost::array
optimiert ist.
Beispiel 71.1 gibt ba
und 21
aus.