Почему мне разрешено копировать unique_ptr? [Дубликат]

Возможный дубликат:
Возвращение unique_ptr из функций

20.7.1.2 [unique.ptr.single] определяет конструктор копирования следующим образом:

// disable copy from lvalue
unique_ptr(const unique_ptr&) = delete;
unique_ptr& operator=(const unique_ptr&) = delete;

Итак, почему следующий код компилируется нормально?

#include <memory>
#include <iostream>

std::unique_ptr< int > bar()
{
  std::unique_ptr< int > p( new int(4));
  return p;
}

int main()
{
  auto p = bar();

  std::cout<<*p<<std::endl;
}

Я скомпилировал это так:

g++ -O3  -Wall -Wextra -pedantic -std=c++0x kel.cpp

Компилятор: g ++ версия 4.6.1 20110908 (Red Hat 4.6.1-9)

Ответы на вопрос(3)

Ваш ответ на вопрос