Ошибки, баги, вопросы - страница 1644

 
Alexey Navoykov:
Вы из далёкого прошлого к нам прилетели? )
Нет, чуть ближе.
 
A100:

Ошибка при компиляции: ')' - not all control paths return a value

Ну тут честно говоря какой-то абсурдный пример.  Пусть даже С++ и допускает такое, но разве возможен данный случай в реальном применении?  Зачем там ставить цикл, если итерация всего одна?
 
Alexey Navoykov:
Ну тут честно говоря какой-то абсурдный пример.  Пусть даже С++ и допускает такое, но разве возможен данный случай в реальном применении?  Зачем там ставить цикл, если итерация всего одна?

Почему одна, если по смыслу это бесконечный цикл и написано, что есть continue

А бывает что и одна нужна, догадываетесь когда? Подскажу - чтобы выйти из сложного if-else-switch подобно goto без лишних флагов и прочих излишеств

 
A100:

Почему одна, если это бесконечный цикл и есть continue

А бывает что и одна нужна, догадываетесь когда?

А, я просто сразу не заметил, что у вас там в комментах расписано чё-то...  Трудно чтоль было в коде это изобразить.
 

В общем что-то не очень понятно, что конкретно понимается "под много строк c return, continue, без break".  Там if есть?

p.s. Всё, понял

 
Sergei Vladimirov:
В приведённом им примере - все. Выход из while(true) возможен только оператором break (которых у него нет) или return.
Vitalii Ananev:
Не буду спорить. Но сообщение об ошибке компилятора ')' - not all control paths return a value,  говорит об обратном.

О чём обратном? О том, что выход возможен не только с помощью break или return? ))

 
Alexey Navoykov:
В общем что-то не очень понятно, что конкретно понимается "под много строк c return, continue, без break".  Там if есть?

Да не имеет значения. Воспроизводится даже с пустым циклом:

 

bool Func()
{
   while(true)
   {
      return true;
   }
}
//')' - not all control paths return a value	Temp Script.mq4	25	1
 

 
Sergei Vladimirov:

О чём обратном? О том, что выход возможен не только с помощью break или return? ))

 Вот об этом.

У вас не все ветви кода возвращают значение. .....

О том что не все ветки приведенного кода возвращают значение. Именно в таких случаях компилятор генерирует эту ошибку.

 
Vitalii Ananev:

 Вот об этом.

О том что не все ветки приведенного кода возвращают значение. Именно в таких случаях компилятор генерирует эту ошибку.

Так о том и речь, что сообщение об ошибке ошибочное.
 
Sergei Vladimirov:

Да не имеет значения. Воспроизводится даже с пустым циклом:

 

Так о том и речь, что сообщение об ошибке ошибочное.

Он привел не полностью код, и видимо в том полном коде есть операторы ветвления. 

Причина обращения: