Mit C++23 kommt std::start_lifetime_as (https://en.cppreference.com/w/cpp/memory/start_lifetime_as)
Mit std::lifetime_as kann man jetzt legal Objekte im Speicher aliasen, wenn man es nur explizit angibt.
Beispiel aus dem C++ Paper P2590R2:
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
GCC 14 kann es leider noch nicht >_>. Aber sobald dass in den Compilern ankommt, sollten doch alle Aliasing Probleme in C++ geklärt sein? Zusätzlich bekommt C++ ein weiteren Vorteil gegenüber C.