Ioann_
Я ничего не понял из твоего ответа, но я хочу говорить более общно. То есть, можно ли как то безопасно перееводить поинтер на инт к поинтеру на флоат. Пусть они по 4 байта.
ඞ
Ioann_
То есть разные арифм.типы друг к другу, но поинтерами
ඞ
Ну какбы ты знаешь, как они устроены?
ඞ
Поинтеры
Ioann_
Сами значения внутри меня не интересуют
Ioann_
Речь идет про стрикт альясинг
ඞ
dynamic_cast?
Matwey
alignas()
ඞ
Ioann_
Динамик каст тут при чем я не понимаю. Rtti это рантайм проверка типа, которая используется при наследовании.
Ioann_
Constantine
Ioann_
Так вот я снова о своем вопросе - ... дело в том что если статик кастить поинтер флоата на поинтер инт - будет еррор. А вот если скастить поинтер к поинтеру на войд, а потом к нужному типу то все тип топчик будет или нет ?
Ioann_
Constantine
Ioann_
Constantine
Т.е. ISO C++ не подразумевает, что это необходимо
Ioann_
Т.к хабр в вопросах стрикт альясинга писал что если кастить к чару а потом куда нужно, то ок будет все
Constantine
A prvalue of type pointer to void (possibly cv-qualified) can be converted to pointer to any type. If the value of the original pointer satisfies the alignment requirement of the target type, then the resulting pointer value is unchanged, otherwise it is unspecified. Conversion of any pointer to pointer to void and back to pointer to the original (or more cv-qualified) type preserves its original value.
Ioann_
То есть значения мне не интересны внутри, там фишка в том что компиль может оптимайзить при знании типов и т.п
Ioann_
Ну в целом ясно, но вдруг кто чего еще добавит
Ioann_
Эммм
Ioann_
способ то есть - повторюсь, читате хабру про SA
Ioann_
Другое дело, делать это через войды
Александр
Ioann_
https://habrahabr.ru/post/114117/
Ioann_
А еще лучше вот это
Ioann_
https://habrahabr.ru/post/267239/
Ioann_
я не могу сказать, но я говорю - читать можно. Но если честно я не знаю, как прокомментировать твой ответ.
Ioann_
Хабр место хорошее, все же. Не все под одной гребенкой же
Ioann_
Ды я как то указатель кастил к uint8_t
Ioann_
Ну там пишут о том, как все таки можно сделать что бы без УБ
Ioann_
Корректное решение номер один — копирование
Ioann_
Корректное решение номер два — использование char*
Pavel
а зачем корректно решать такую задачу?
Pavel
комуто нужно приводить указатели на разные типы да ещё и платформонезависимо?
Pavel
используются только те вызовы, которые доступны в целевой ОС.
Pavel
там же ниже написано что он юзает депрекейтед позикс функцию
Pavel
ну хотя. почему бы и нет. не сисколы же ему звать
Ioann_
Кие то банальные весчи
Pavel
да чет в каментах говорят собирается со скрипом, лицензия странная и для популярных платформ нет портов
Stanislav
https://twitter.com/ericniebler/status/903308727880630272
Vladislav
🐙 Antony
Stanislav
Stanislav
https://github.com/ericniebler/range-v3/blob/async_ranges/include/range/v3/experimental/utility/sync_wait_all.hpp#L214
Stanislav
вот этот код
🐙 Antony
мозг вскипел
Constantine
мозг вскипел
О! Скажите пожалуйста, как решать проблему нарушения ODR из-за incomplete type при использовании is_detected
🐙 Antony
Ок, попрошу Гора добавить сопрограммы и в Хаскель. Чтобы всё везде было одинаково непонятно :)
ep
Лучше сразу вопрос задавать
ep
Все нужные опции туда прокидываются?
ep
Какая ошибка хоть?
ep
INSTALL_COMMAND укажи пустую
ep
Можно просто
ExternalProject_Add(hlsl2glsl
GIT_REPOSITORY https://github.com/aras-p/hlsl2glslfork
INSTALL_COMMAND
)
ep
А тебе нужно, чтобы не игнорировал, а делал INSTALL?
ep
Я особо не смотрел в исходники проекта, который на гитхабе, но по моему там нет install в cmake-конфигурации.
ep
Попробуй добавить EXCLUDE_FROM_ALL TRUE
ep
Как тут советуют
https://stackoverflow.com/a/37855224
ep
Две строчки
STEP_TARGETS build
EXCLUDE_FROM_ALL TRUE
Berkus
https://godbolt.org/g/dpAQ7A where is your god now?
Anonymous
Pavel
gcc
Pavel
gcc мой бог. вот лежит в /usr/bin.
Pavel
icc тоже хочет всё поудолят
Pavel
а почему так?
Pavel
он типа думает что мы не будем звать main пока не проинициализируем статический Do?
Pavel
а раз мы его инициализируем только вот так вот и больше нигде и никак
Pavel
то бахнем сразу его в main чо уж
Berkus
ну вообще странно
Berkus
инициализировало бы нулем и падало как нормальные люди
Pavel
не, стоп. я теперь не могу повторить волшебство с удолением
Berkus
https://godbolt.org/g/m7vkYY а вот так уже ок
Pavel
ну или если static убрать
Pavel
или если NeverCalled затолкать в анонимный неймспейс
Pavel
он тогда ещё и скажет что айяй вот эта функция действительно never called