Es scheint, dass std::byte im Allgemeinen dazu gedacht ist, die Verwendung von char in Puffern zum Zuweisen von Rohspeicherblöcken zu ersetzen.
Aber ich mache mir darüber Sorgen Tatsache ist, dass std::byte implizit Objekte erstellen kann, während char dies nicht kann. Wenn der Zweck darin besteht, Rohspeicher zuzuweisen, damit Sie darin Objekte erstellen können (z. B. durch die Verwendung von „placement new“), warum sollte dann std::byte den Puffer vorher mit einer Reihe implizit erstellter Objekte füllen?< /p>
Wäre es nicht besser, char zu verwenden, damit Sie potenzielles undefiniertes Verhalten im Zusammenhang mit der Lebensdauer dieser unerwünschten und implizit erstellten std::byte-Objekte (d. h. den Zugriff darauf von außen) vermeiden können? ihres Lebens aus Versehen)?
Und eine verwandte zweite Frage: Überlappen sich die Lebensdauern von std::byte-Objekten mit denen größerer Objekte, die auf demselben Speicher erstellt wurden? Müssen die std::byte-Objekte ihre Lebensdauer beenden, bevor ein anderes Objekt die Bytes verwenden kann, oder können sich mehrere Objektlebensdauern die Bytes teilen?
Danke.
Unerwünschte implizite Objekterstellung durch std::byte VS char ⇐ C++
-
- Similar Topics
- Replies
- Views
- Last post
-
-
Wie man einen einzelnen Char in einen null-terminierten const char* umwandelt
by Anonymous » » in C++ - 0 Replies
- 7 Views
-
Last post by Anonymous
-