To fix overloading when using these types.
Ported from std::unique, behaviour is identical with regard to memory ownership/handling