c++ - 带有模板的 shared_ptr

标签 c++ templates shared-ptr

如果我想创建一个指向结构的智能指针,我会这样做:

    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/

相关文章:

c++ - 无法访问 C++ 中类模板继承第二级上的 protected 类成员

c++ - 在另一个类声明中创建一个类的对象时出现 "Expected a type specifier"错误

c++ - 将 shared_ptr 作为参数传递给接受类类型对象的函数

c++ - 如何获得指向 shared_ptr 的指针?

c++ - 从input1查找input2中字符的位置

c++ - 解码音频后调用阻塞 snd_pcm_writei 会导致奇怪的播放吗?

c++ - 我坚持使用 C++ 中的模板类

c++ - C++ 模板中的代码重用(或不重用)

c++ - 传递指向Vivado HLS中功能的指针的数组(SDSoC 2018)

c++ - c++中的静态类成员变量和静态变量