Wpis z mikrobloga

@dupasmoka: @BotRekrutacyjny: memcpy nie jest gwarantowane bezpieczne dla typów ktore nie są POD. To czy dla twojego typu to jest w porządku to musisz sam ocenić bo nie widzimy kodu.

Pomyśl sobie co by było gdybyś zrobił memcpy shared_ptra ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@BotRekrutacyjny: Zawsze mi się wydawało, że to konstruktor kopiujący jest tym prostym sposobem. Co tam w środku trzymasz? Jeśli masz np unique ptr to nie da się zrobić idealnej kopii.
  • Odpowiedz
To czy musisz tworzyć konstruktor kopiujący zależy od struktury twojej klasy. Jeżeli klasa posiada jakikolwiek wskaźnik to raczej powinieneś napisać konstruktor kopiujący i upewnić się, że prawidłowo skopiujesz te dane.
  • Odpowiedz
@Malkof: Ogólnie type punning występuje wtedy probujemy się dostać do obiektu przez wskaźnik innego typu. Niektore typy mogą ku temu służyc jak std::byte czy char, ale większość nie,
Memcpy jest bardzo bezpieczna opcja unikania typu punningu bo przyjmuje parametry jako void*, a do voida* można bezpiecznie zcastowac wszystko. Jak chcesz wiecej o tym poczytać to tu jest fajny artykul

Problem OPa nie leży w typu punningu tylko w tym czy prosta
  • Odpowiedz