如何对类 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
。