我里面有一个矩阵类和一个列类:

template<class T>
struct MatrixT
{
    template<class T>
    struct ColumnT
    {
    };
};

请注意,ColumnT始终具有与MatrixT相同的类型。

为方便起见,我定义
typedef MatrixT<double> matrix;

由于实际上,我大多数时候都会使用double元素。但是我也想为columnT类定义类似的东西。我试过了
typedef MatrixT<double>::ColumnT<double> matrix::column;

但是编译失败并显示错误



有没有办法实现我想要的?

我希望能够像输入matrix::column c;一样输入matrix m;

最佳答案

只需删除第二个template<class T>

template<class T>
struct MatrixT
{
    struct ColumnT
    {
    };
};

然后ColumnT应该使用与MatrixT相同的类型,并且您的typedef ...
typedef MatrixT<double> matrix;

...应该可以按预期工作。

关于c++ - 如何typedef内部类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41266210/

10-10 02:06