所以这就是我的困境:
我有一个容器会存储一些对象。我将与容器中的对象进行交互,就好像它们都是基类一样。基类是纯虚拟的。有些对象可以复制,有些可以复制。它们都是可以移动的,所以这就是我所坚持的。
为了给你一个想法,我正在编写一个与接受自定义shared_ptr和unique_ptr无关的容器。
所有对象的大小都相同,这将在编译时使用static_asserts进行验证。
我想移动对象,并改变派生类类型,因为我这样做。我估计这在很大程度上是不受支持的,但是我想看看是否有足够的定义来完成我想要做的事情,我可以创建一个正确形成的解决方案。
我想不惜一切代价避免未定义,但实现定义和未指定的行为都可以。
在这种情况下,我可以简单地将memcpy从一个对象运行到另一个对象吗? 如果没有,我还能做些什么才能让它工作?