Re: странный warning
От: Tilir Россия http://tilir.livejournal.com
Дата: 11.11.09 17:24
Оценка: +1
Здравствуйте, -MyXa-, Вы писали:

MX>Три компилятора говорят, примерно, так: Warning: returning address of local variable or temporary


MX>Почему?


Дело в том, что throw попадает под return. Вот так ворнинга уже нет:

template<typename T>
T const & at(T const * const a, std::size_t const index, std::size_t const size)
{
    if (index < size) 
      return a[index];
    throw index;
}


Забавный кстати случай поскольку throw index имеет вообще-то тип void. И почему компилятор вообще разрешает return condition ? int : void -- загадка.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.