Возврат auto_ptr из функции
От: WFrag США  
Дата: 22.09.03 11:42
Оценка:
Рассмотрим такой пример:

#include <memory>
using namespace std;

auto_ptr<int> get()
{
    return auto_ptr<int>(new int);
}

int main()
{
    auto_ptr<int> p;
    
    p = get(); // (1)
}


Далее, вроде результат возврата функции (в данном случае) — rvalue. Следовательно, на него нельзя делать неконстантную ссылку. Следовательно, нельзя присвоить в месте, помеченном (1) (у auto_ptr-а присваивание, как и конструктор копии, требует именно неконстантную ссылку). Причем gcc 2.95 так, собственно, и говорит.

Получаем, что auto_ptr нельзя использовать для возврата указателя из функции. Тем не менее, постоянно упоминается, что для этого, собственно, он и применяется. Где я не прав?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.