Replace all plain pointers with smart pointers
We should replace all plain pointers with smart pointers, either from std or from boost.
Some random notes
- Each class
Tfor which a shared pointer
std::shared_ptr<T>is used should feature a
typedef std::shared_ptr<T> SP. This reduces the amount of code we have to write.
- Cyclic references have to be avoided using weak pointers.
- return type of Object::clone
(almost) all occurrences of the keyword
replace (occurrences of)