#include <iostream>
#include <list>
#include <memory>
#include <typeinfo>
class T {
public:
// 类T的声明
};
int main() {
// 创建一个std::unique_ptr<T>对象,并把它添加到std::list<std::unique_ptr<T>>中
std::list<std::unique_ptr<T>> lst;
lst.push_back(std::make_unique<T>());
// 遍历std::list<std::unique_ptr<T>>中的元素,并访问它们的T类型
for (const auto& ptr : lst) {
const std::type_info& info = typeid(ptr.get());
std::cout << "Object of type " << info.name() << " found." << std::endl;
}
return 0;
}
以上代码首先包含了必要的头文件,然后创建了一个std::list<std::unique_ptr<T>>
对象,其中T
是一个用户定义的类型。接着,我们使用std::make_unique<T>
来创建一个std::unique_ptr<T>
对象,并将其添加到std::list<std::unique_ptr<T>>
中。最后,我们使用typeid
操作符来获取std::unique_ptr<T>
对象的类型信息,并将其打印出来。
领取专属 10元无门槛券
手把手带您无忧上云