访问typedef的/使用的模板参数

时间:2018-07-05 13:16:29

标签: c++ templates vector

我目前正在研究模板化数学向量类。这样做时,我遇到了一些令人讨厌的行为。

我实际的向量类是通过模板参数从另一个类继承组件的(因为我的组件是数组和单个变量(x,y,z)的并集)。

我想通过使用声明访问组件类的value_type。但这会产生一个错误,指示标识符未知。访问模板参数的使用声明是否非法? 的解决方法是什么?

要澄清的代码示例:

#include <iostream>

template<typename T, size_t N>
struct Components
{
public:
    using value_type = T;

    constexpr static size_t getDim() {return N;}


    union
    {
        T arr[N];
    };
};

template<class COMPONENTS>
struct Vector : public COMPONENTS
{
    COMPONENTS::value_type mag()
    {
        return 22.f;
    }
};

int main()
{
    Vector<Components<float, 3>> vec;
    vec.mag();
}

预先感谢, 路易斯·沃思。

0 个答案:

没有答案