Похоже, что std::byte обычно предназначен для замены использования char в буферах для распределения блоков необработанной памяти.
Но меня беспокоит тот факт, что std::byte может неявно создавать объекты, а char — нет. Если цель состоит в том, чтобы выделить необработанную память, чтобы вы могли создавать в ней объекты (например, с помощью нового размещения), зачем вам нужно, чтобы std::byte заранее заполнял буфер кучей неявно созданных объектов?< /p>
Не лучше ли использовать char, чтобы избежать потенциального неопределенного поведения, связанного со временем жизни этих нежелательных и неявно созданных объектов std::byte (т. е. доступа к ним извне) их время жизни случайно)?
И еще один связанный с этим второй вопрос: перекрываются ли времена жизни объектов std::byte с более крупными объектами, созданными поверх той же памяти? Должны ли объекты std::byte закончить свое время существования, прежде чем другой объект сможет использовать байты, или несколько жизней объекта могут совместно использовать байты?
Спасибо.
Подробнее здесь: https://stackoverflow.com/questions/793 ... te-vs-char
Нежелательное неявное создание объекта с помощью std::byte VS char ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение