我可以在多个平台上使用移动语义动态更改多态类型吗?

时间:2014-07-23 18:32:47

标签: c++ c++11 polymorphism smart-pointers move-semantics

所以这就是我的困境:

我有一个容器会存储一些对象。我将与容器中的对象进行交互,就好像它们都是基类一样。基类是纯虚拟的。有些对象可以复制,有些可以复制。它们都是可以移动的,所以这就是我所坚持的。

为了给你一个想法,我正在编写一个与接受自定义shared_ptr和unique_ptr无关的容器。

所有对象的大小都相同,这将在编译时使用static_asserts进行验证。

我想移动对象,并改变派生类类型,因为我这样做。我估计这在很大程度上是不受支持的,但是我想看看是否有足够的定义来完成我想要做的事情,我可以创建一个正确形成的解决方案。

我想不惜一切代价避免未定义,但实现定义和未指定的行为都可以。

在这种情况下,我可以简单地将memcpy从一个对象运行到另一个对象吗? 如果没有,我还能做些什么才能让它工作?

0 个答案:

没有答案