Ответ 1
Возможно, вы ошибаетесь.
byte
очень похож на "доступ к памяти". Вы должны использовать этот тип, если хранилище представляет собой всего лишь последовательность байтов, а не массив символов.
Типы Iostream не могут быть специализированы с byte
, поскольку они разработаны вокруг символов в качестве их интерфейса. То есть, они не считают файлы в виде последовательностей байтов; они воспринимают их как последовательности персонажей. Теперь вы можете читать прямо в массив byte
, используя листинг или два. Но это не так, как думает iostream.
Вам нужно сделать различие между тем, как работает iostream и как работают файлы. Iostream - это всего лишь одна файловая библиотека IO; это вряд ли является конечным, все файловые API-интерфейсы.
Большинство файловых API для чтения двоичных данных принимают void*
, а не массивы символов. std::fread/fwrite
и т.д.
То есть вы должны думать об этом, а не как о проблеме с std::byte
, а как о проблеме с iostream. Еще один из них длинный.