gpt4 book ai didi

c++ - typedef 包含模板化类的共享指针

转载 作者:太空狗 更新时间:2023-10-29 23:53:32 25 4
gpt4 key购买 nike

假设我有一些前向声明的模板类,我想用类型定义一个指向它的共享指针。我该怎么做?

template<typename T> class Arg;
typedef std::tr1::shared_ptr<Arg> ArgPtr; // Compiler error

最佳答案

您可能还需要模板类型定义。阅读 Sutter 的 article .

在 C++03 中,你需要一个技巧:

template <typename Arg> struct ArgPtr {
typedef std::shared_ptr<Arg> ArgPtrType;
};

在 C++11 中,您可以通过 using 关键字直接使用模板别名:

template <typename T>
using ArgPtrType = std::shared_ptr<Arg<T>>;

关于c++ - typedef 包含模板化类的共享指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10439261/

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