Consider the following program:
struct list_wrapper { std::vector<int> m_list; }; int main() { std::vector<int> myList { 1, 1, 2, 3, 5 }; const std::vector<int>::iterator iter = myList.begin(); list_wrapper wrappedList; wrappedList.m_list = std::move(myList);
After calling std::move(myList) , now does iter point to a valid element inside wrappedList.m_list or wrappedList.m_list moving constructors / assignments invalidate all iterators?
c ++ iterator undefined-behavior c ++ 11 move-semantics
Karl Nicoll
source share