Size: a a a

2020 April 25

ЮП

Юрий Першин in pro.cxx
Alex
О, кажется, сейчас первый раз пощупаю биткаст за вымя. Спасибо за совет.
Аккуратнее. Боднуть может )))
источник

A

Alex in pro.cxx
как так?
Что-то msvc v142 о нём не знает с флагом c++latest, хотя хедер <bit> есть
источник

A

Alex in pro.cxx
Офигеть, его даже в GCC 10 ещё нет. Судя по табличке - только в msvc и есть, но в бете, а у меня свежий релиз. https://en.cppreference.com/w/cpp/compiler_support
источник

AD

Andrey Davydov in pro.cxx
Igor Akhmetov
Нет, у float partial_ordering, а нужен strong_ordering.
Должно работать, в последний момент решили отвязать template parameters от равенства, ordering-а и всего такого.
источник

A

Alex in pro.cxx
без bit_cast в компайл тайм этого никак не сделать?
источник

A

Alex in pro.cxx
Кстати, в табличке C++20 core language features не вижу ничего про template parameters, как называется эта фича (поддержка float и других новых типов)?
источник

IA

Igor Akhmetov in pro.cxx
Alex
Кстати, в табличке C++20 core language features не вижу ничего про template parameters, как называется эта фича (поддержка float и других новых типов)?
Class types in non-type template parameters
источник

A

Alex in pro.cxx
Понял, меня смутило слово class, float же не class type
источник

IA

Igor Akhmetov in pro.cxx
Да, видимо float должен, в http://wg21.link/p1907 последняя версия. Но попробовать это совсем негде :)
источник

A

Alex in pro.cxx
увидел, GCC 9 указан
источник

A

Alex in pro.cxx
а можно написать constexpr аналог memcmp для побитного сравнения значений размером от 1 до 8 байт? Точнее, насколько это будет громоздко?
источник

A

Alex in pro.cxx
погуглил - на удивление, не вижу таких решений готовых, хотя проблема такая в шаблонном коде вряд ли у меня первого возникла
источник

CD

Constantine Drozdov in pro.cxx
очень похоже на то, что у первого
источник

A

Alex in pro.cxx
это всё хаки в отсутствие bit_cast и возможности передать не-int шаблонным значением. Любого одного из этих двух было бы достаточно, чтобы сравнить простым ==
источник

CD

Constantine Drozdov in pro.cxx
я полагаю, что биткаст и вообще битовое представление не существует в constexpr
источник

SE

Stanislav Ershov in pro.cxx
Alex
а можно написать constexpr аналог memcmp для побитного сравнения значений размером от 1 до 8 байт? Точнее, насколько это будет громоздко?
__builtin_memcmp же есть везде
источник

A

Alex in pro.cxx
биткаст не будет доступен в компайл тайм??
источник

SE

Stanislav Ershov in pro.cxx
даже в msvc
источник

CD

Constantine Drozdov in pro.cxx
а что, взятие адреса разрешено в constexpr? давно?
источник

A

Alex in pro.cxx
Stanislav Ershov
даже в msvc
он тоже не constexpr
источник