std::auto_ptr f() { const std::auto_ptr p(new int); // Право владения не передается std::auto_ptr q(new int); // Право владения передается *p = 42; // OK; изменение значения, на которое ссылается p bad_print(p); // ОШИБКА КОМПИЛЯЦИИ *p = *q; // OK; изменение значения, на которое ссылается p p = q; // ОШИБКА КОМПИЛЯЦИИ return p; // ОШИБКА КОМПИЛЯЦИИ }