嵌套 class C++ 的正确模板

Correct template for nested class C++

我想不出为嵌套 class 编写正确模板的正确语法。我想做这样的事情

template <typename T>
class list {
private:
    class node {
    public:
        T value;
        node();
        ~node();
    };

public:
    node<T> *H;
    list();
    ~list();
};

我想要一个 class 来表示外部 class 的每个元素,所以我想要将内部 class 隐藏在外部。这可能吗?或者我应该使用不同的方法?

您不需要为内部 class 指定模板参数(因为它没有声明为模板 class):

template <typename T>
class list {
private:

    class node {
    public:
        T value;
        node();
        ~node();
    };

public:
    node *H; // <<<<<<
    list();
    ~list();
};

最终我要找的是这个。

template <typename T>
class list {
private:
    template <typename U>
    class node {
    public:
        U value;
        node();
        ~node();
    };

public:
    node<T> *H;
    list();
    ~list();
};