Size: a a a

2020 August 13

AK

Andrei K in pro.cxx
И у него есть std::as_bytes и std::as_writable_bytes. Оказалось что с этим работать нереально.
источник

AK

Andrei K in pro.cxx
Пришлось везде оставаться с uint8_t
источник

ПК

Побитый Кирпич... in pro.cxx
Andrei K
Я тут попытался во всём проекте переехать на std::span
Думаю user defined literal самый норм вариант
источник

AK

Andrei K in pro.cxx
Побитый Кирпич
Думаю user defined literal самый норм вариант
Да окей, для статических литералов принимается.
источник

ПК

Побитый Кирпич... in pro.cxx
Andrei K
Да окей, для статических литералов принимается.
А что ещё тебе надо?
источник

AF

Aidar Fattakhov in pro.cxx
Andrei K
Пришлось везде оставаться с uint8_t
Потомучто ты захардкодить 100 чисел не можешь без скобочек?
источник

AF

Aidar Fattakhov in pro.cxx
Я не понял принцип твоей логики
источник

AS

Artur Solovev in pro.cxx
Andrei K
И у него есть std::as_bytes и std::as_writable_bytes. Оказалось что с этим работать нереально.
Расскажи.
источник

AK

Andrei K in pro.cxx
Момент, впнюсь на работу, сейчас посмотрю в код, что мне там конкретно не понравилось.
источник

AT

Andrew Titov in pro.cxx
источник

i

ilynxy in pro.cxx
Во, кстати, вопрос — std::byte всегда 8 бит?
источник

ПК

Побитый Кирпич... in pro.cxx
ilynxy
Во, кстати, вопрос — std::byte всегда 8 бит?
Нет конечно
источник

AF

Aidar Fattakhov in pro.cxx
ilynxy
Во, кстати, вопрос — std::byte всегда 8 бит?
Думаю всегда unsigned char
источник

AS

Artur Solovev in pro.cxx
Есть похожий лулз (только в сишке, не в плюсах), когда sizeof('a') != sizeof(char), потому что 'a' это не символьный литерал, а целочисленный, видимо в угоду переносимости.
источник

AS

Artur Solovev in pro.cxx
Конкретно здесь лулз в том, что преобразование 0xFF -> std::byte невозможно без постфикса, хотя довольно логично.
источник

AT

Andrew Titov in pro.cxx
Aidar Fattakhov
Думаю всегда unsigned char
источник

AK

Andrei K in pro.cxx
Ага ну вот например. Всякие преобразования из хекса и обратно. Или из base64 и обратно, которые по смыслу должны работать с байтами. Там сложности в том, что без статик кастов или прости господи си-конверсии нельзя использовать байты как например индекс в лукап-таблице. Другие проблемы когда тебе надо работать с байтами как со значениями, для криптографии или для сериализации. И опять много тяжеловесных и некрасивых кастов. В целом кодобазу с std::uint8_t на std::byte переводить очень тяжело как оказывается практически.
источник

AF

Aidar Fattakhov in pro.cxx
В чем проблема кастов?
источник

ПК

Побитый Кирпич... in pro.cxx
Andrei K
Ага ну вот например. Всякие преобразования из хекса и обратно. Или из base64 и обратно, которые по смыслу должны работать с байтами. Там сложности в том, что без статик кастов или прости господи си-конверсии нельзя использовать байты как например индекс в лукап-таблице. Другие проблемы когда тебе надо работать с байтами как со значениями, для криптографии или для сериализации. И опять много тяжеловесных и некрасивых кастов. В целом кодобазу с std::uint8_t на std::byte переводить очень тяжело как оказывается практически.
Ну байты это по сути чисто хранение, интерпретация байт не должна быть неявной
источник

AK

Andrei K in pro.cxx
В том что если для narrowing conversion я понимаю зачем явные касты нужны, то для каста в uint32_t это уже становится не супер удобно.
источник