gpt4 book ai didi

c++ - make_shared 与模板构造函数

转载 作者:行者123 更新时间:2023-11-30 04:07:39 25 4
gpt4 key购买 nike

我有一个带有模板构造函数的类,并且想要一个 shared_pointer给它。如:

class A;
typedef std::shared_ptr<A> A_ptr;

class A {
public:
template <typename T>
A(Arg1 arg1, Arg2 arg2, T data) { ... do something with data ... }

static A_ptr New(Arg1 arg1, Arg2 arg2, T data) {
return make_shared<A>(arg1,arg2,data);
}
};

我知道 make_shared 的行不对,但不知道解决方案。甚至可以调用 make_shared使用模板构造函数?我是否需要将“新建”函数设为模板函数并传入 A<T>不知何故?...

最佳答案

A::New转换为函数模板

template<typename T>
static A_ptr New(Arg1 arg1, Arg2 arg2, T data) {
return std::make_shared<A>(arg1,arg2,data);
}

关于c++ - make_shared 与模板构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22332630/

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