唯一指针 class 成员

unique pointer class member

我现在正在学习 C++ class 中的构造函数、析构函数和内存。我想要一个 class 内的向量。我在写 "return magnitudes->at(dimension); " 时总是出错,这段代码有问题吗?

编辑: 抱歉,错误是 "applying -> to unique pointer instead of raw pointer",这是来自 Clion,也许 IDE 是错误的?

除了错误之外,我主要是将它包装在一个智能指针中,这样就不会发生内存泄漏,或者这不可能吗?析构函数会一直被调用吗(抱歉还在学习析构函数)

#include <iostream>
#include "EuclideanVector.h"
#include "../catch.hpp"
#include <memory>

namespace evec{

    class EuclideanVector{
    public:
        //constructors
        EuclideanVector(): EuclideanVector(1){};
        EuclideanVector(unsigned int size): magnitudes(std::make_unique(new std::vector<double>(size,0.0))){}

        double get(int dimension){
            return magnitudes->at(dimension);
        }
    private:
        std::unique_ptr<std::vector<double>> magnitudes;

    };
}

问题在这里

EuclideanVector(unsigned int size): magnitudes(std::make_unique(new std::vector<double>(size,0.0))){}

将此行更改为

EuclideanVector(unsigned int size): magnitudes(std::make_unique<std::vector<double>>(size,0.0)){}

因为std::make_unique是一个模板,所以不需要使用new