OPTIONS

Kernel Memory Management GuidelinesΒΆ

  • Avoid using bare pointers for dynamically allocated objects. Prefer scoped_ptr, shared_ptr, or another RAII class such as BSONObj.
  • Do not use auto_ptr’s and refactor legacy ones out whenever possible. (Careful with C++ driver and backward compatibility though.)
  • If you assign the output of new/malloc() directly to a bare pointer you should document where it gets deleted/freed, who owns it along the way, and how exception safety is ensured. If you cannot answer all three questions then you probably have a leak.