Почему уникальный _ptr (T *)является явным?

Следующие функции не компилируются:

std::unique_ptr<int> foo()
{
    int* answer = new int(42);
    return answer;
}

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

Я нахожу это немного неудобным. Что послужило причиной сделать std::unique_ptr<T>(T*)явным?

29
задан fredoverflow 6 July 2012 в 18:43
поделиться