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

 
Vict:

Ещё раз повторю, если бы оптимизаторы были бы очень умны, то default init приравняли бы к value init с вставкой компилятором инициализурующих инструкций по необходимости ещё в каком-нибудь C11, но увы. Никто не заставляет, если не хотите то, делайте везде T val{}; Усталь объяснять элементарщину.

Потому что стандарт C++, как я понимаю, описывает правила очень формально, без привязки к контексту.  Т.е. инициализацию либо делать всегда, либо не делать никогда.  Для сравнения, в C# можно объявить переменную без инициализации, но далее по коду она должна быть обязательно проинициализирована. Т.е. компилятор анализирует последующий код, а не только текущую команду, это заложено в правилах языка.  В C++ же никакого анализа не предусмотрено стандартом. Нет гибкости.  Поэтому если пропишут принудительную инициализацию, вы начнёте возмущаться, мол как же так, я сам хочу всё контролировать и инициализировать! )

[Удален]  
Alexey Navoykov:

Потому что стандарт C++, как я понимаю, описывает правила очень формально, без привязки к контексту.  Т.е. инициализацию либо делать всегда, либо не делать никогда.  Для сравнения, в C# можно объявить переменную без инициализации, но далее по коду она должна быть обязательно проинициализирована. Т.е. компилятор анализирует последующий код, а не только текущую команду, это заложено в правилах языка.  В C++ же никакого анализа не предусмотрено стандартом. Нет гибкости.  Поэтому если пропишут принудительную инициализацию, вы начнёте возмущаться, мол как же так, я сам хочу всё контролировать и инициализировать! )

Просто туда попадают обкатанные решения, а если это будет работать через пень колоду, давая часто лишний оверхед, то никто это не включит. Например, прописали же в стандарте ОБЯЗАННОСТЬ для компилятора делать copy elision в с++17.

 

Тема называется "Ошибки, баги, вопросы".

Пожалуйста, создайте себе тему, в которой будете обсуждать MQL vs C#,C++, и прочее связанное с синтаксисом, компиляторами и разминками для ума.

Вы же тему засоряете и другие вопросы и сообщения пользователей тонут в вашем обсуждении.

Меня спрашивают где вопрос задать - отправляю сюда, а мне в ответ: там дядьки спорят на сто страниц - не буду мешать, остальное бессмысленно ...

 
const int DEFAULT_INT_VALUE   = 147;
input int thisIsAnInput       = DEFAULT_INT_VALUE;
'NoConstForInput.mq5'    NoConstForInput.mq5    1    1
'DEFAULT_INT_VALUE' - constant expected    NoConstForInput.mq5    13    33
1 errors, 0 warnings        2    1

Build 2361 and 2390

 
Alain Verleyen:
'NoConstForInput.mq5'    NoConstForInput.mq5    1    1
'DEFAULT_INT_VALUE' - constant expected    NoConstForInput.mq5    13    33
1 errors, 0 warnings        2    1

Build 2361 and 2390

#define DEFAULT_INT_VALUE 147
[Удален]  
Vict:

Вот смотрите, если хотите получать стабильную ошибку, то инициализировать стек очень просто:

Инициализация памяти из хипа - тоже плёвое дело. Если нарвёмся на какую-нибудь representation trap, то вообще получим core dump.

Последний коммент, модераторы не злитесь )).

Тут нужно уточнить - а почему в стеке разные значения от вызова к вызову?. Всё дело в защите https://ru.wikipedia.org/wiki/ASLR, и не нужно даже вообще ничего иницализировать как сказал раннее. В моём случае - запускаю софтину под gdb (отладчиком), который разместит ее по одинаковым адресам при каждом запуске, т.е. стек не будет загажен "случайными" адресами возврата.

[Удален]  
Artyom Trishkin:

Тема называется "Ошибки, баги, вопросы".

Пожалуйста, создайте себе тему, в которой будете обсуждать MQL vs C#,C++, и прочее связанное с синтаксисом, компиляторами и разминками для ума.

Вы же тему засоряете и другие вопросы и сообщения пользователей тонут в вашем обсуждении.

Меня спрашивают где вопрос задать - отправляю сюда, а мне в ответ: там дядьки спорят на сто страниц - не буду мешать, остальное бессмысленно ...

Хотелось бы иметь тему исключительно для багов, а то сюда валят всё подряд.

 

.

,fu

 
Koldun Zloy:

Хотелось бы иметь тему исключительно для багов, а то сюда валят всё подряд.

Поддерживаю. Я давно предлагал навести порядок. Разделить на 2 отдельные темы: "Ошибки, баги" и "Вопросы"
 
Alexey Navoykov:
Поддерживаю. Я давно предлагал навести порядок. Разделить на 2 отдельные темы: "Ошибки, баги" и "Вопросы"

Так ведь всё это уже есть.

И для новичков, и для профи.

Всё равно сюда всё валят.