- Mesaj
- 52
- Çözümler
- 1
- Beğeni
- 180
- Puan
- 699
- Ticaret Puanı
- 0
Burayı görüntülemek için üye girişi yapmalı veya kayıt olmalısınız.
Bu kodda UB var;
it erase edilip continue statement yazılmış. erase(it) sadece silinen elemana ait iterator'ı invalidate eder, statementda loop invalidate edilmiş iteratörü increment ediyor, olması gereken "it = m_set_entity.erase(it)" yazıp for yerine while döngüsüne çevirmek (erase zaten bir sonraki geçerli iterator'ı döndürüyor). Neyse, biraz daha inceleyip özetle C++20 için şöyle bir çözüm üretebilirsiniz;
Burayı görüntülemek için üye girişi yapmalı veya kayıt olmalısınız.
UB ise neden bugüne kadar patlamadı derseniz adı üstünde UB ne olacağını ancak Allah bilebilir, kimse öngöremez teknik detay için compiler dökümanlarına bakmak lazım.
