jjzjj

MoveAssignable

全部标签

c++ - 在 MoveAssignable 的情况下,标准对 self 移动赋值有何看法?

这是C++17的currentdescriptionMoveAssignable的:t=rv;Iftandrvdonotrefertothesameobject,tisequivalenttothevalueofrvbeforetheassignmentrv'sstateisunspecified.[ Note:rvmuststillmeettherequirementsofthelibrarycomponentthatisusingit,whetherornottandrvrefertothesameobject.Theoperationslistedinthoserequireme

c++ - std::deque::erase,T需要MoveAssignable,如何规避?

作为来自here的后续问题,我想知道是否有办法避开std::deque::erase的MoveAssignable。实际上我有一堆相互关联的类,其中有很多const类型和引用,这远非MoveAssignable。我需要将它们装在容器中,但是如果不能使用删除,这就变得毫无意义了。有什么想法吗? 最佳答案 std::deque的工作方式要求其内容是可重定位的(否则,它不需要MoveAssignable概念)。这意味着您不能将双端队列(或与此相关的vector)与不可移动类型一起使用。但是您可以使用不移动其元素的容器,例如std::lis