![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#51 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
![]()
Вот подробнее про qmake
https://stackoverflow.com/questions/...ile-with-qmake А вот про aliasing, похоже на С++ ток через memcpy само переносимо, и надеяться на оптимизацию: http://dbp-consulting.com/tutorials/StrictAliasing.html |
![]() |
![]() |
![]() |
#52 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
![]()
Т.е. вот такой вариант:
Код:
Последний раз редактировалось alexzk; 21.06.2017 в 14:21. |
![]() |
![]() |
![]() |
#53 |
Вредный кошак
Участник клуба
Регистрация: 14.10.2012
Сообщений: 1,159
|
![]()
Не понял зачем там enable_if.
Ну и размер лучше проверить: Код:
|
![]() |
![]() |
![]() |
#54 | |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
![]() Цитата:
чтоб только указатели преобразовывались. Для остального оно нафик не над. Кому вдруг нада - можно убрать ![]() Последний раз редактировалось alexzk; 21.06.2017 в 17:04. |
|
![]() |
![]() |
![]() |
#55 |
Вредный кошак
Участник клуба
Регистрация: 14.10.2012
Сообщений: 1,159
|
![]()
т.е. и T и Src - указатели?
Тогда это не спасет от нарушения strict-aliasing в коде, который будет использовать такой union_cast. Код:
Как видим, адрес в p совпадает с адресом переменной x, только вот вывод интересный. ))) |
![]() |
![]() |
![]() |
#56 | ||
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
![]() Цитата:
Вот, даже явно задал -fstrict-aliasing и он не возникает даже там, где нужен ... Код:
Цитата:
Последний раз редактировалось alexzk; 21.06.2017 в 20:39. |
||
![]() |
![]() |
![]() |
#57 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
![]()
...а в вашем примере тоже все верно, вывод из мейн
1.4822e-322 30 это и есть корректно - в 1 память записалось, а вот в foo, как-то соптимизировалось (т.е. он 1 константу по указателю положил, и сразу же ее на экран отправил, а в памяти таки изменилось, что видно в мейн дальше), т.к. вы не выполняете над переменными действий. Вот если форсировать компилер, и сказать, что значения меняются внутир фуу: Код:
32 4629700416936869888 value d:0x7ffe41f99030 value p:0x7ffe41f99030 32 4629700416936869888 Последний раз редактировалось alexzk; 21.06.2017 в 20:50. |
![]() |
![]() |
![]() |
#58 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
![]()
..кароче да, шото я фигню понаписал
![]() Последний раз редактировалось alexzk; 21.06.2017 в 22:16. |
![]() |
![]() |
![]() |
#59 |
Вредный кошак
Участник клуба
Регистрация: 14.10.2012
Сообщений: 1,159
|
![]() Код:
Код:
|
![]() |
![]() |
![]() |
#60 | |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
![]() Цитата:
![]() Последний раз редактировалось alexzk; 22.06.2017 в 07:15. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
MMX сложить два числа | gansm | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 13 | 29.10.2010 05:16 |
как сложить два числа с плавающей точкой | forsy | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 19 | 29.03.2010 02:15 |
Макрос: сложить два числа | белочка | Microsoft Office Excel | 6 | 23.12.2009 22:02 |
Сложить два числа и вывести результат на экран | We1c0m3 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 23.05.2009 11:41 |
Сложить два числа | iwaniwan | Win Api | 3 | 23.04.2009 06:27 |