Учитывая контейнер STL (вы можете также учитывать boost::unordered_map и boost::multi_index_container), который является несмежным, гарантируется, что адреса памяти элементов внутри контейнера никогда не будут меняться, если элемент не будет удален ( но можно добавить новые)?
например.
class ABC { };
//
//...
//
std::list<ABC> abclist;
ABC abc;
abclist.insert(abc);
ABC * abc_ptr = &(*abclist.begin());
Другим словом будет abc_ptr на abc на протяжении всего выполнения, если я не удалю abc из abc_list.
Я спрашиваю об этом, потому что я собираюсь обернуть класс abc в С++/Cli, поэтому мне нужны указатели на экземпляры abc в классе-оболочке. ABC - это простой класс, и я хочу, чтобы контейнер обрабатывал память. Если ответ не будет, я буду использовать std::list<ABC*>.