Форум
C/C++
Тема
Как правильно задавать вопросы
B
I
abc
U
X
3
X
3
H1
H2
H3
H4
H5
H6
Asm
C/C++
C#
Erlang
Haskell
IDL
Java
Lisp
MSIL
Nemerle
ObjC
OCaml
Pascal
Perl
PHP
Prolog
Python
Ruby
Rust
SQL
VB
Здравствуйте, T4r4sB, Вы писали: TB>Здравствуйте, rg45, Вы писали: R>>В [url=http://rsdn.org/forum/cpp/8514442.1]твоем примере[/url] у компилятора нет возможности отследить, но есть возможность гарантировать правильный результат. TB>Как и в любой другой оптимизации, в которой компилятор закладывается то, что программист идеально внимательный и не пишет код, содержащий UB. Как в том же стрикт алиасинге, например - компилятор не может доказать что адреса не перекрываются, но он может работать в режиме -fno-strict-aliasing. R>>P.S. Если рассматривать конкретно этот пример, то почему-то же программист написал "return l + a;", а не "return l + ll;". Вероятно, он знает, что после вызова функции bar значение объекта, адресуемого ссылкой "a", должно (или может) измениться и осознанно обрабатывает этот случай? TB>Ну это ж упрощённый пример. А в реальном коде может так оказаться, что программист поленился закешировать в локалку какое-то более сложное выражение.
Теги:
Введите теги разделенные пробелами. Обрамляйте в кавычки словосочетания с пробелами внутри, например:
"Visual Studio" .NET
Имя, пароль:
Загрузить
Нравится наш сайт?
Помогите его развитию!
Отключить смайлики
Получать ответы по e-mail
Проверить правописание
Параметры проверки …