このためのテンプレートメタプログラミング?
-
28-09-2019 - |
質問
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
テンプレートは、特定のタイプをテンプレートパラメーターに置き換えるのと同じくらい簡単です。
template<class T>
struct findByName
{
string name;
bool operator()(const T &a)
{
return (a.name == name);
}
};
(これは、パラメーターが参照によって渡されると仮定しますが、必要に応じてパラメーターとしてポインターを取得するように変更できます。)
所属していません StackOverflow