(テンプレート引数の一部)のQMap
ように、カスタムコンパレータ関数を設定する方法が見つかりませんでした。std::map
typename _Compare = std::less<_Key>
QMap
設定する方法はありますか?
文書化されていません (間違いだと思いますqMapLessThanKey
) が、テンプレート関数を型に特化することができます (ソースを参照)。これにより、タイプは次の代わりに他の関数を使用できるようになりますoperator<
。
template<> bool qMapLessThanKey<int>(const int &key1, const int &key2)
{
return key1 > key2; // sort by operator> !
}
それにもかかわらず、 std::map には mapごとに異なるコンパレータを指定できるという利点がありますが、ここでは指定できません (タイプを使用するすべてのマップがその特殊化を確認する必要があります。そうしないと、すべてがバラバラになります)。