我有处理(Vulkan)资源的类,让我们调用它们
VulkanInstance
和VulkanDevice
。
我的Master
类拥有这两个
class Master {
VulkanInstance instance_;
VulkanDevice device_;
reset();
}
在我的reset
函数中,我想删除当前的instance
和device
并创建一个新的device_
。
我想到了以下条件:
instace_
才能销毁device_
,因为instance_
取决于instance_
device_
才能创建device_
instance_
和VulkanInstance
无法复制,但可以构建,移动构造并移动分配VulkanDevice
和instance_
之前创建新的device_
和reset
。因此,当我在构建新元素时遇到错误时,我仍然会留下旧的有效类。我的问题是:我应该如何设计pointers
功能。可以在不使用std::unique_ptr
/ VulkanInstance
到VulkanDevice
或 // PSEUDO CODE
Master::reset() {
VulkanInstance new_instance {};
VulkanDevice new_device {};
device_ = new_device; //use move here and destruct old device_ Dont use copy constructor
instance_ = new_instance; //use move here and destruct old device_ Dont use copy constructor
}
的情况下实现。
我虽然喜欢这样的事情
...
// to change/overwrite the initial string
str = str.replace(re, function (match) {
...
});