Imagine a class C that has a member variable m_MyList of type std::vector in which I want to store objects of type MyClass. C has two functions that add or remove objects in m_MyList.
m_MyList should also be made accessible for consumers of C as they need to read the collection of MyClass objects. The external reader of the collection will have no means to change the collection, thus the MyClass objects are owned only by C.
Now my question: In C++11 style, what is the best T to store in the vector? The possibilities seem to be:
std::vector<MyClass>std::vector<MyClass*>std::vector<unique_ptr<MyClass>>, usingstd:moveto push theunique_ptrinto thevector