Форум программистов, компьютерный форум CyberForum.ru

Тернарный оператор: возврат значения - C++

Восстановить пароль Регистрация
 
jonson
 Аватар для jonson
231 / 204 / 61
Регистрация: 18.03.2010
Сообщений: 749
30.03.2014, 02:06     Тернарный оператор: возврат значения #1
Приветствую.
При компиляции ниже приведенного кода
C++ (Qt)
1
2
3
4
5
6
7
8
9
bool MyFunc()
{
    bool flag = false;
 
    // .... некоторые действия
    // ....
 
    (flag) ? return true : return false;
}
получаю ошибку: error C2059: синтаксическая ошибка: return
Почему такой формат условного выражения для возврата значения из функции считается ошибкой?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2014, 02:06     Тернарный оператор: возврат значения
Посмотрите здесь:

C++ Засунуть в тернарный оператор
Тернарный оператор vs if/else C++
C++ Шахматы(заменить тернарный оператор) на if else
C++ Альтернатива if (.) {.} (тернарный оператор)
C++ Тернарный оператор - найти ошибку в коде
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Wlk
49 / 49 / 13
Регистрация: 07.12.2011
Сообщений: 133
30.03.2014, 02:09     Тернарный оператор: возврат значения #2
C++
1
 return (flag)? true : false;
а еще проще если флаг только true / false

C++
1
return flag;
MastAKK
 Аватар для MastAKK
143 / 134 / 12
Регистрация: 13.10.2012
Сообщений: 586
Записей в блоге: 1
30.03.2014, 02:09     Тернарный оператор: возврат значения #3
C++
1
return (flag ? true :  false);
DrOffset
6424 / 3798 / 879
Регистрация: 30.01.2014
Сообщений: 6,591
30.03.2014, 02:29     Тернарный оператор: возврат значения #4
Цитата Сообщение от jonson Посмотреть сообщение
Почему такой формат условного выражения для возврата значения из функции считается ошибкой?
Потому что результатом тернарного оператора должно быть значение некоего типа, которое является в свою очередь результатом вычисления одного из выражений, написанных в операндах тернарного оператора. Т.е. в нем допускаются только операции, которые такое значение вычисляют. Языковая операция return обеспечивает возврат значения, но сама по себе не типизирована. По такому же принципу не получится написать, например for или while в качестве операндов тернарного оператора.
Yandex
Объявления
30.03.2014, 02:29     Тернарный оператор: возврат значения
Ответ Создать тему
Опции темы

Текущее время: 19:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru