这合法吗?:
Sample& sample = stack.front();
stack.pop_front();
Run Code Online (Sandbox Code Playgroud)
我的程序有效.但Sample类有boost::optional<boost::posix_time::ptime> xxx成员和after pop_front,is_initialized()返回false;
Ant*_*eru 13
不,这不合法.您必须获取该对象的副本,即使用
Sample sample = stack.front ()
Run Code Online (Sandbox Code Playgroud)
如果您正在使用a std::vector,则pop_front调用将元素移动到位置,并且您的引用指向另一个元素(之前的第二个,现在是第一个元素.)