Данная запись абсолютно нормальна. Гораздо удобней, чем громоздить такое:
if (a()) if (b()) if (c()) d();
В Visual Studio нет никаких предупреждений. Потому как результат каждой функции используется для
определения дальнейшего поведения алгоритма. Это же касается и
тернарного
оператора. А предупреждение должно выдаваться только если значения никак не используются (т.е. математические операции и
др.)
Иначе тогда предупреждения нужно выдавать и при вызове отдельных функций: a(); b(); Ведь их результаты вообще никак не
используется.
Данная запись абсолютно нормальна. Гораздо удобней, чем громоздить такое:
В Visual Studio нет никаких предупреждений. Потому как результат каждой функции используется для
определения дальнейшего поведения алгоритма. Это же касается и
тернарного
оператора. А предупреждение должно выдаваться только если значения никак не используются (т.е. математические
операции и др.)
Иначе тогда предупреждения нужно выдавать и при вызове отдельных функций: a(); b(); Ведь их результаты вообще никак
не используется.
не вижу ни какого смысла в такой строке
voidOnStart()
{
a() && b() && c() && d(); // expression has no effect
}
кроме того, предупреждения выдает не IDE, а компилятор, смею предположить, в VS у вас используется компилятор от Microsoft, а тут
собственная разработка, основанная вероятно на каких то открытых исходниках, может даже gcc, хотя не факт
Вопрос по компилятору.
Результатом этого выражения будет MathRand(), а не 0
Да, перепутал. Спасибо. Думаю, смысл вопроса все равно понятен.
Да, перепутал. Спасибо. Думаю, смысл вопроса все равно понятен.
Надеюсь, компилятор оптимизирует такие простые случаи. Можно попробовать протестировать скорость, если есть сомнения.
А меня вот интересует возможность применения тернарного оператора в constexpr-выражениях. Сейчас компилятор не даёт его так использовать:
Приходится городить огород с кучей математических операций.
Зачем здесь выдаётся предупреждение?
Данная запись абсолютно нормальна. Гораздо удобней, чем громоздить такое:
В Visual Studio нет никаких предупреждений. Потому как результат каждой функции используется для определения дальнейшего поведения алгоритма. Это же касается и тернарного оператора. А предупреждение должно выдаваться только если значения никак не используются (т.е. математические операции и др.)
Иначе тогда предупреждения нужно выдавать и при вызове отдельных функций: a(); b(); Ведь их результаты вообще никак не используется.
Зачем здесь выдаётся предупреждение?
Данная запись абсолютно нормальна. Гораздо удобней, чем громоздить такое:
В Visual Studio нет никаких предупреждений. Потому как результат каждой функции используется для определения дальнейшего поведения алгоритма. Это же касается и тернарного оператора. А предупреждение должно выдаваться только если значения никак не используются (т.е. математические операции и др.)
Иначе тогда предупреждения нужно выдавать и при вызове отдельных функций: a(); b(); Ведь их результаты вообще никак не используется.
не вижу ни какого смысла в такой строке
кроме того, предупреждения выдает не IDE, а компилятор, смею предположить, в VS у вас используется компилятор от Microsoft, а тут собственная разработка, основанная вероятно на каких то открытых исходниках, может даже gcc, хотя не факт
как эту лабуду привести к нормальному виду ?где кнопка индикаторы? куда тут тыкать? помогите народ
как эту лабуду привести к нормальному виду ?где кнопка индикаторы? куда тут тыкать? помогите народ
Visualize indicator on a chart - в левой колонке вторая сверху синяя строчка.
Либо просто киньте драг-дропом индикатор на окно тестера
Вопрос по компилятору.
Да, если первый пример исправить, то компилятор вырезает всё оставляя только return(0);
Надеюсь, компилятор оптимизирует такие простые случаи. Можно попробовать протестировать скорость, если есть сомнения.
А меня вот интересует возможность применения тернарного оператора в constexpr-выражениях. Сейчас компилятор не даёт его так использовать:
Приходится городить огород с кучей математических операций.
Спасибо за сообщение, видимо где -то я пропустил вызов свёртки константных выражений - буду разбираться
ИСПРАВЛЕНО