gpt4 book ai didi

c++ - 模板类 typedef - 在类外使用

转载 作者:行者123 更新时间:2023-11-30 00:38:32 27 4
gpt4 key购买 nike

我有这样一个类:

struct WorkItemResultData;

template <typename ExecutionPolicy>
class Engine
{
public:
typedef std::shared_ptr<WorkItemResultData> WorkItemResultData_ptr;
}

typedef 不依赖于任何模板参数。有没有办法在 Engine 类之外使用 Engine::WorkItemResultData_ptr 类型?

编辑 我知道我可以像 awoodland 提出的解决方案一样使用它,但我的 typedef 独立于类型参数并且希望能够在不指定特定引擎类型的情况下使用它。

最佳答案

由于 typedef 根本不依赖于 Engine,您可以将其从类中拉出:

typedef std::shared_ptr<WorkItemResultData> WorkItemResultData_ptr;

template <typename ExecutionPolicy>
class Engine {...};

如果你想保持封装,只需使用命名空间:

namespace Engine
{
typedef std::shared_ptr<WorkItemResultData> WorkItemResultData_ptr;
}

关于c++ - 模板类 typedef - 在类外使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10530934/

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