Giriş
C++17 ile geliyor.
Örnek
Elimizde şöyle bir kod olsun
C++17 ile geliyor.
Örnek
Elimizde şöyle bir kod olsun
struct X { const int n; };
union U { X x; float f; };
...
U u = {{ 1 }};
const alanı normalde değiştiremeyiz. Şu kod çalışmaz.X *p = new (&u.x) X {2};
Yeni alana erişmek için şöyle yaparız.assert(*std::launder(&u.x.n) == 2); //Will be true.
Burada ise pointer yanlış olduğu müddetçe std::launder() çağrısının işe yaramayacağı gösteriliyor.
Hiç yorum yok:
Yorum Gönder