#include #include std::unique_ptr source(double d) { return std::make_unique(d); } void sink(std::unique_ptr p) { std::cout << *p << " erhalten.\n"; } int main() { auto p(source(3.1415)); std::cout << *p << " erschaffen\n"; sink(std::move(p)); if (!p) std::cout << "Zeiger freigegeben\n"; sink(source(2.718)); // dynamisches Feld - bevorzuge std::vector, std::array int size = 10; std::unique_ptr squares(new int[size]); for (int i = 0; i < size; ++i) // Buchhaltung über Anzahl Elemente { // in Verantwortung des Programmierers! squares[i] = i*i; std::cout << squares[i] << ' '; } return 0; // automatische Freigabe }