c++ - 模板特化站点报告 "too few template-parameter-lists"错误

标签 c++ list templates parameters

代码某处有错误,但我不知道如何解决。它说“模板参数列表太少”。我不明白哪个是错误的。

代码如下:

#if !defined(VECTOR_H_INCLUDED)
#define VECTOR_H_INCLUDED

#include <cstdlib> // for size_t

namespace Vec
{
    class Vector_base
    {
    public:
        explicit Vector_base() {}
    };

    template<typename T, int DIM>
    class Vector : public Vector_base
    {
        typedef Vector<T,DIM> ME;

        explicit Vector(T,T,T);

        double dot(const ME &v) const;

        T &operator [](size_t n)
        {
            return v[n];
        }

        T operator [](size_t n) const
        {
            return v[n];
        }

    private:
        T v[DIM];
    };

    typedef Vector<double,3> Vector3;

    double Vector3::dot(const ME &o) const // ----- it gives me the error here ...
    {
        return v[0] * o[0] + v[1] * o[1] + v[2] * o[2];
    }

    Vector3::Vector(double x, double y, double z) // ----- ... and here
    {
        v[0] = x;
        v[1] = y;
        v[2] = z;
    }
}

#endif // VECTOR_H_INCLUDED

我需要更改什么?

最佳答案

你应该使用 template<>在这里进行模板特化。

template<> double Vector3::dot(const ME &o) const 

template<> Vector3::Vector(double x, double y, double z) 

关于c++ - 模板特化站点报告 "too few template-parameter-lists"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19884494/

相关文章:

c++ - 有 "unprotect"static const 成员的通用方法吗?

list - 如何删除数组中的重复项但保持相同的顺序?

Python,使用列表,找到最大序列长度

c++ - 为mingw编译linux库

c++ - 在 C++ 程序中生成 pcapng 文件

c++ - 为什么 C++ std::rand() 有模式?

我可以对 2 个不同的结构使用相同的指针吗?

部分模板实例化中的 C++ Typedef

c++ - std::make_tuple 是右值引用时如何保留 std::string 类型

C++检测模板类