Базовый тип byte

y.belykhav
y.belykhav

В C++ нет встроенного типа byte . Для представления байтовых значений используется тип unsigned char.

Не красиво выглядет char - символ. Все делают свой byte|BYTE.

18
рейтинг
9 комментариев
yndx-antoshkka
В C++17 хотели добавить std::byte_t. Финальное голосование предложение не прошло, люди захотели другое имя (std::storage_byte_t?).

То есть идея уже почти в стандарте, делать ничего не надо. Пару заседаний люди поиграются с именем типа и возможно даже получится включить std::byte_t в C++17.
yndx-antoshkka
y.belykhav
Жаль что std:: а не просто byte как int (((
y.belykhav
yndx-antoshkka
y.belykhav, просто byte ломает пользовательский код. Мы нашли множество примеров использования typedef unsigned char byte; Поэтому в std:: и ещё подумают над именем.

std::byte не имеет арифметических операций, что многих тоже смущает. Комитет ищет имя, которое бы отражало такое поведение.
yndx-antoshkka
y.belykhav
yndx-antoshkka, Странно почему при выборе зарезервированного слова стандарт языка должен опираться на код людей. Язык должен жить независимо от кода. Да и наконец таки пусть сделают тогда рефакторинг. Ведь это была "заплатка" в связи с отсутствием возможности!
y.belykhav
yndx-antoshkka
y.belykhav, если новые стандарты будут ломать ранее работавший валидный код, то новыми стандартами серьёзные люди и компании пользоваться не будут. А потом и языком пользоваться перестанут.
yndx-antoshkka
Anatoly Scheglov
Не нужно. Все разработчики и так знают что [signed/unsigned] char имеет размер 1 байт.

> Для представления байтовых значений используется тип unsigned char.

А еще char, а еще std::uint8_t .
Anatoly Scheglov
y.belykhav
Anatoly Scheglov, Согласен, вы показали свои глубокие знания особенно >А еще char, а еще std::uint8_t . Но проще же BYTE, вместо всего этого. Зря вы против такой простой вещи как BYTE. То что все как-то это обыгрывают, и настроили своих велосипедов, создав при этом проблему и аргумент "просто byte ломает пользовательский код" и есть доказательство проблемы. Я бы назвал отсутствие базового типа (именно базового а не std) как старая добрая всем известная проблема, что Вы и подтверждаете "Все разработчики и так знают что [signed/unsigned] char имеет размер 1 байт.(BYTE)" А то что Комитет пытается все запихнуть в std НЕ ЕСТЬ РАЗВИТИЕ ЯЗЫКА - а ЕСТЬ РАЗВИТИЕ STD
y.belykhav
yndx-antoshkka
Proposal на std::byte open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0583r0.pdf

Есть все шансы, что будет в C++17
yndx-antoshkka
yndx-antoshkka
Приняли в С++17 с именем std::byte.
yndx-antoshkka
Другие идеи
Группа создана, чтобы собирать предложения к стандарту C++, организовывать их внутренние обсуждения, помогать готовить их для отправки в комитет и защищать на общих собраниях в рабочей группе по С++ Международной организации по стандартизации (ISO).