|
60 / 45 / 12
Регистрация: 07.10.2011
Сообщений: 139
|
|||||||||||
const_cast что это?12.07.2012, 21:44. Показов 9879. Ответов 9
Метки нет (Все метки)
Здравствуйте! В общем, наткнулся на такую программу:
Очевидно, что все изюминка в 8 строчке... Так что делает const_cast?
0
|
|||||||||||
| 12.07.2012, 21:44 | |
|
Ответы с готовыми решениями:
9
mc68hc908 - это что это, это с чем это ?? |
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
| 12.07.2012, 21:51 | |
|
http://codepad.org/tiOYR1o1
мне так больше нравится это снятие константности, невалидное в данном случае
2
|
|
|
200 / 200 / 78
Регистрация: 10.07.2012
Сообщений: 409
|
||||||
| 12.07.2012, 21:52 | ||||||
|
похоже что тут дело в оптимизациях компилятора
вот такая модификация уже приведёт к ожидаемым значениям:
0
|
||||||
|
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
|
| 12.07.2012, 21:54 | |
|
const_cast снимает константность при преобразовании типа. Поскольку переменная a была изначально константной, её адрес имел тип const int *. Благодаря const_cast с типа адреса была снята константность и его стало возможно поместить в переменную b, которая указывает на неконстантное целое число. Так что в 9 строчке изменяется значение переменной a. То, что на экран выводится её предыдущее значение - результат некорректной работы оптимизатора, который ошибочно предположил, что объявленная как const переменная a изменяться не будет и подставил инициализационное значение. Если добавить к объявлению переменной a ещё и ключевое слово volatile, то такие оптимизации для этой переменной будут отключены и на экран выведутся две четвёрки.
4
|
|
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
||
| 12.07.2012, 21:56 | ||
|
а так да
изза оптимизации компилятор считает, что константа не меняется но не тут то было Добавлено через 1 минуту после того, как программист снял константность с константы и начал в нее писать имеем undefined behavior
1
|
||
|
60 / 45 / 12
Регистрация: 07.10.2011
Сообщений: 139
|
|
| 12.07.2012, 21:57 [ТС] | |
|
0
|
|
|
|
||
| 12.07.2012, 21:59 | ||
|
1
|
||
|
Нуб со стажем
36 / 34 / 10
Регистрация: 19.02.2012
Сообщений: 118
|
|
| 12.07.2012, 21:59 | |
|
1
|
|
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|||||||
| 12.07.2012, 22:13 | |||||||
|
чтобы работать с неконстантами в константном контексте я встречал использование такого в основном при неудачном унаследованном интерфейсе
0
|
|||||||
| 12.07.2012, 22:13 | |
|
Помогаю со студенческими работами здесь
10
Не могу понять, что это за реализация ORM и как это работает Зачем файлы .h называть .hpp? Это новый стандарт? Что это дает? Что это может быть? или как это называется? Меня взломали! При загрузке компа появляется это, не знаете что это и как исправить Можно ли утверждать, что в визуальном программировании: формы - это классы, а виджеты - это объекты? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|