• Saizaku@lemmy.dbzer0.com
    link
    fedilink
    arrow-up
    5
    ·
    1 month ago

    Because you would be using std::shared_ptr<> rather than a raw pointer, which will automatically deallocate the memory when a shared point leaves the scope in the last place that it’s used in. Along with std::atmoic<shared_ptr> implements static functions that can let you acquire locks and behave like having a mutex.

    Now this isn’t enforced at the compiler level, mostly due to backwards compatibility reasons, but if you’re writing modern c++ properly you wouldn’t run into memory safety issues. If you consider that stretching the definition then I guess I am.

    Granted rust does a much better job of enforcing these things as it’s unburdened by decades of history and backwards compatibility.