Size: a a a

2020 August 13

AF

Aidar Fattakhov in pro.cxx
Короче из питонов украли
источник

AK

Andrei K in pro.cxx
Я призываю попробовать перевести свой код на std::byte и увидеть самому в каких местах это неудобно.
источник

AF

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

AK

Andrei K in pro.cxx
Я это понимаю, что смысл был в этом.
источник

AS

Anatoly Shirokov in pro.cxx
Andrei K
Говорю же. Даже элементарно std::array не сконструировать.
Like char and unsigned char, it can be used to access raw memory occupied by other objects (object representation), but unlike those types, it is not a character type and is not an arithmetic type. A byte is only a collection of bits, and the only operators defined for it are the bitwise ones.
источник

AF

Aidar Fattakhov in pro.cxx
Скажи спасибо что тебя не заставили индексировать массив через ptrdiff_t
источник

AK

Andrei K in pro.cxx
Aidar Fattakhov
Смысл был в том как раз чтобы ты разделял хранение и арифметику
По факту оказывается, что практически всегда арифметика нужна. Я могу например шифтить биты, то есть семантика типа на самом деле предполагает, что это именно число, но по факту те ограничения на семантику которые наложены — очень жёсткие и реалистично, красивый код с ними не попишешь.
источник

AK

Andrei K in pro.cxx
Я бы хотел тип байт, пожалуйста, который не был бы алиасингом uint8_t но арифметика там всё-таки нужна. Как минимум хочется его для индексирования использовать.
источник

AF

Aidar Fattakhov in pro.cxx
Andrei K
По факту оказывается, что практически всегда арифметика нужна. Я могу например шифтить биты, то есть семантика типа на самом деле предполагает, что это именно число, но по факту те ограничения на семантику которые наложены — очень жёсткие и реалистично, красивый код с ними не попишешь.
bitset тоже число?
источник

AF

Aidar Fattakhov in pro.cxx
Andrei K
Я бы хотел тип байт, пожалуйста, который не был бы алиасингом uint8_t но арифметика там всё-таки нужна. Как минимум хочется его для индексирования использовать.
Явное лучше неявного
источник

ПК

Побитый Кирпич... in pro.cxx
Andrei K
По факту оказывается, что практически всегда арифметика нужна. Я могу например шифтить биты, то есть семантика типа на самом деле предполагает, что это именно число, но по факту те ограничения на семантику которые наложены — очень жёсткие и реалистично, красивый код с ними не попишешь.
Вообще-то в числах биты не шифтят
источник

ПК

Побитый Кирпич... in pro.cxx
Их как раз шифтят в raw памяти
источник

AK

Andrei K in pro.cxx
Aidar Fattakhov
bitset тоже число?
В плюсах семантически это не число, тем не менее все понимают, что это очень близкий к числу объект.
источник

AF

Aidar Fattakhov in pro.cxx
Andrei K
В плюсах семантически это не число, тем не менее все понимают, что это очень близкий к числу объект.
У него те же операции что и у байта
источник

AF

Aidar Fattakhov in pro.cxx
Кроме чтения через реинтерпреткасты
источник

ПК

Побитый Кирпич... in pro.cxx
Andrei K
Я бы хотел тип байт, пожалуйста, который не был бы алиасингом uint8_t но арифметика там всё-таки нужна. Как минимум хочется его для индексирования использовать.
Ты просто хочешь меньше буков, но ценой кривой абстракции, в которой байт это число
источник

AK

Andrei K in pro.cxx
Я опять же в курсе. Говорю просто что область применения std::byte оказывается не супер понятной. С одной стороны as_bytes классная штука, но с другой построить из этого хекс уже не так красиво. Хотя по смыслу туда должны идти именно байты.
источник

AK

Andrei K in pro.cxx
Побитый Кирпич
Ты просто хочешь меньше буков, но ценой кривой абстракции, в которой байт это число
Не совсем так. Байты в реальных приложениях практически всегда рассматриваются как числа, увы. Ну или в тех приложениях где я работаю. Криптография, сериализация и маршаллинг данных.
источник

AK

Andrei K in pro.cxx
Хочу посмотреть на чей-нибудь код большого проекта, который переехал на std::byte
источник

AF

Aidar Fattakhov in pro.cxx
Ну ты и обозвал перекладывание жсонов конечно)
источник