std::find_if
を使用して要素を検索したいタプルのstl::list
をそれぞれ複数の型比較で使用しています。タプルタイプを特定のテンプレート付きget()
関数に関連付けることはできますか?したがって、フィールド番号を述語テンプレートに渡す必要はありません。C++述語を使用してタプルのリスト内の要素を検索
私はこのような述語作成:私が欲しいもの
template<typename T, size_t field>
struct obj_predicate : public std::unary_function<ObjectRecordType, bool>
{
const T* comparisonObject;
obj_predicate(const T& cObj) : comparisonObject(&cObj) {}
bool operator()(const ObjectRecordType& obj) const
{
return *comparisonObject == std::tr1::get<field>(obj);
}
};
はタプルのint
の位置を認識してobj_predicate<int>(3)
のようなものです。
あなたはC++ 11を使用することはできますか? – kennytm
あなたが解決策を知っているのであれば、本当にそうではありません。 – aambrozkiewicz
現在の実装について気に入っていないものは何ですか? –