`mitk::WeakPointer` fills in the blank of a missing implementation of a true weak pointer for `itk::Object`. While there is an `itk::WeakPointer`, it is simply a raw pointer wrapper and of questionable use. The current implementation of `mitk::WeakPointer` still has some flaws, though:
- It has more than a single responsibility by providing `mitk::Messages` for `itk::ModifiedEvent` and `itk::DeleteEvent` of the wrapped `itk::Object`. This mechanism isn't used a single time in MITK.
- It is not as efficient as it should be.
- It can't be used in a natural way like a pointer because it lacks many comparison operators.
- It provides direct and dangerous access to its encapsulated resource, the wrapped raw pointer.
I want to replace the current implementation of `mitk::WeakPointer` with a new, well thought out, high-quality implementation.