gpt4 book ai didi

c++ 将 unique_ptr 的 vector 转换为 unique_ptr,其中 derived 是一个模板

转载 作者:行者123 更新时间:2023-11-27 22:58:13 24 4
gpt4 key购买 nike

<分区>

我有以下情况:

Base 是一个基类。T 是一个模板,可以采用 Base 的任何派生类。

底层为我提供来自 Base 类的数据,我需要将其转换为上层(编写代码的那一层)上的特定类,以便在用户级别上工作。

代码如下:

template <class T> class Access {
std::vector<std::unique_ptr<T> getData();
}

template <class T>
std::vector<std::unique_ptr<T> getData()
{
/// Get data from below layer
std::vector<std::unique_ptr<Base>> retData;

retData = getDataFromBelowLayer();

/// Now I have to cast Base to T
std::vector<std::unique_ptr<T>> retCastData;

for (auto &item : retData)
{
std::unique_ptr<T> = static_cast<T>(item); <<---- NOT WORKING
retCastData.push_back(std::move(item)); <<---- NOT WORKING
}

return retCastData;
}

如何有效地将接收到的 Base 类的 unique_ptr´svector 转换为 vector unique_ptr´sT 类型,如图所示。

感谢您的帮助。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com