C++ 模板元编程?

C++ 模板元编程?,c++,template-meta-programming,C++,Template Meta Programming,有没有一种方法可以使用模板元编程或其他方法来实现这一点?如果有帮助的话,我总是可以使用一个指针将其设置为category*。创建一个通用的findByName模板就像用模板参数替换特定类型一样简单: struct findCategoryByName { string name; bool operator()(const category& a) { return (a.name == name); } }; struct findE

有没有一种方法可以使用模板元编程或其他方法来实现这一点?如果有帮助的话,我总是可以使用一个指针将其设置为category*。

创建一个通用的
findByName
模板就像用模板参数替换特定类型一样简单:

struct findCategoryByName
{
    string name;

    bool operator()(const category& a)
    {
        return (a.name == name);
    }
};

struct findEntryByName
{
    string name;

    bool operator()(const entry* a)
    {
        return (a->name == name);
    }
};
模板
结构findByName
{
字符串名;
布尔运算符()(常数T&a)
{
返回(a.name==name);
}
};

(这假设参数是通过引用传递的,但如果愿意,您可以将其更改为以指针作为参数。)

您到底想做什么?在列表中搜索一个特定类别或条目?
template<class T>
struct findByName
{
    string name;

    bool operator()(const T &a)
    {
        return (a.name == name);
    }
};