#include #include #include #include std::string decorate(std::string text) { text += '!'; return text; } int consume(std::unique_ptr value) { assert(value); return *value; } int main() { std::string original = "C++"; assert(decorate(original) == "C++!"); assert(original == "C++"); auto owner = std::make_unique(42); int result = consume(std::move(owner)); assert(result == 42); assert(!owner); }