Actually, there is nothing wrong with public inheritance of std::vector
. If you need this, just do that.
I would suggest doing that only if it is really necessary. Only if you can’t do what you want with free functions (e.g. should keep some state).
The problem is that MyVector
is a new entity. It means a new C++ developer should know what the hell it is before using it. What’s the difference between std::vector
and MyVector
? Which one is better to use here and there? What if I need to move std::vector
to MyVector
? May I just use swap()
or not?
Do not produce new entities just to make something to look better. These entities (especially, such common) aren’t going to live in vacuum. They will live in mixed environment with constantly increased entropy.