#include <iostream>
#include <tr1/memory>
class Tester {
public:
Tester& operator<<(std::string s) {
std::cout << s;
return *this;
}
~Tester() {
std::cout << "End\n";
}
};
std::tr1::shared_ptr<Tester> wrapper() {
std::cout << "Begin\n";
return std::tr1::shared_ptr<Tester>(new Tester());
}
int main() {
*(wrapper()) << "A "<< "test!\n";
std::cout << "Ending scope\n";
return 0;
}
Mittwoch, 14. April 2010
C++ Steams dressieren
Manchmal möchte man gerne bestimmte Aktionen auslösen die sich nach dem Abwickeln einer Streambefüllung zutragen sollen (z.B. das ein Lock freigeben). Hier ist ein kleiner Trick der genau das macht und in bestimmten Situationen durchaus hilfreich sein kann: wenn z.B. man durch widrige Umstände nicht in der Lage ist den Scope zu begrenzen.
Abonnieren
Kommentare zum Post (Atom)
Keine Kommentare:
Kommentar veröffentlichen