Wednesday, 15 February 2012

containers - Writing c++ without new and delete keyword? Best approach? -



containers - Writing c++ without new and delete keyword? Best approach? -

i'm trying write c++ code without using keywords new , delete.

first, practice or not ?

one of side effects of coding can't rely on nullptrfor empty values.

for instance:

std::array<std::array<fb::block *, panel::y>, panel::x> blocks;

becomes

std::array<std::array<fb::block, panel::y>, panel::x> blocks;

what best way describe empty block ?

i though using this:

class block { private: protected: public: ... static const block empty; }; } const block empty(0, blocktype::tutorial, 0, 0);

what guys think ? approach ?

if want write safe code , simplify memory management, should indeed avoid delete. there no need discard new. best way go allocate object want new , store in smart pointers std::shared_ptr or std::unique_ptr. can compare pointers nullptr. , objects automatically deleted.

some advise replace raw new make_shared , make_unique calls in scenario.

the related question when utilize t& , when utilize t* passing argument function. rule of thumb is: utilize t* whenever input argument can absent, utilize t& ensure input argument provided.

c++ containers

No comments:

Post a Comment