如果我想创建一个指向结构的智能指针,我会这样做:
struct A
{
int value;
};
typedef boost::shared_ptr<A> A_Ptr;
所以,我可以这样写:
A_Ptr pA0(new A);
pA0->value = 123;
但是,如果我有这样的模板结构:
template<typename T>
struct B
{
T value;
};
我想写以下内容:
B_Ptr<char> pB0(new B<char>);
pB0->value = 'w';
那么,我应该如何声明 B_Ptr 呢?
最佳答案
应该是
typedef shared_ptr< B<char> > B_Ptr;
B_Ptr p( new B<char> );
p->value = 'w';
关于c++ - 带有模板的 shared_ptr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1710263/