T.....n
T.....n
#programowanie #cpp
Rozumiem, że nie crashuje programu na skutek dealokacji pamięci podczas każdego przebiegu pętli while?
1
  • Najlepsze
  • Wszystkie komentarze
patrolez
@TheMoonTheMoon: będzie się kasować przy wychodzeniu poza zasięg while, czy też na końcowej (domyślnej/niewidocznej) klamrze pętli while, ale masz zły typ:
https://stackoverflow.com/a/27772333/12755962
Gdzie sugerują tam, że doprowadzasz do UB.

Czyli powinno być
3
patrolez
@TheMoonTheMoon: o i też się czegoś dowiedziałem: https://stackoverflow.com/a/46472497/12755962 :: What are the evaluation order guarantees introduced by C++17?
2
konsument
@TheMoonTheMoon: Moim skromnym zdaniem, przez optymalizacje kompilatora ta pętla nie robi nic. RVO zastępuje move na wyjściu z uptr tworząc p w pamięci zaalokowanej w ramce callera. Przy czym uptr() jako rvalue nie ma w ogóle odniesienia, także jest zbędne, bo nie ma żadnego side effect'u.
0