我有 Pool
类模板,可以这样说:
template <class T>
class Pool {
public:
static int iPoolUpperBound;
static int iPoolSize;
static T **pItem;
T();
~T();
}
当我需要某个类的对象池时,我只使用该模板。我还有 Item
类,我需要将向量添加到当前的 Pool
模板,但该向量应仅在我引用/时才会出现使用 Item
类。
简单if (T == Item)
不会显而易见,我已经尽力有条件地将该向量添加到Pool
模板
如果我可以有条件地在 Pool
类模板成员函数中添加一行或两行而不会重载它,也会有所帮助。
答案 0 :(得分:0)
如果我可以在Pool类模板成员函数中有条件地添加一行或两行而不重载它也会有所帮助。
例如,您只能重载pItem
。
struct Item
{ };
template <typename>
struct proItem
{ };
template <>
struct proItem<Item>
{ static Item ** pItem; };
Item ** proItem<Item>::pItem;
template <typename T>
struct Pool : public proItem<T>
{
static int iPoolUpperBound;
static int iPoolSize;
};
int main()
{
Pool<Item>::pItem = nullptr; // compile
//Pool<int>::pItem = nullptr; // compilation error
}