如何对类 GList 进行部分特化,以便可以存储 I(即 I*)的指针?

template <class I>
struct TIList
{
    typedef std::vector <I> Type;
};


template <class I>
class GList
{
      private:
            typename TIList <I>::Type objects;
};

最佳答案

你不需要专门允许这样做。它已经可以存储指针了。

GList<int*> ints;

无论如何,如果您想将 GList 专门用于指针,请使用以下语法。
template <class I>
class GList<I*>
{
    ...
};

然后就像在任何普通模板中一样使用 I 。在上面带有 GList<int*> 的示例中,将使用指针特化,并且 I 将是 int

10-07 18:51