|
Boost Users : |
Subject: [Boost-users] does composite_key_compare support an interface that enables comparsion of the whole tuple
From: brijesh.sharma_at_[hidden]
Date: 2011-06-13 13:54:28
Hi,
Here is what I am trying to do
typedef DWORD DSIid;
enum DSType
{
DSTypeNone = 0,
DSTypeBegin,
DSTypeRoot
}
struct SDSIOwnedByKey
{
SDSIOwnedByKey(DSType DSTypeOwned, DSIid DSIidOwned,
DSType DSTypeOwner, DSIid DSIidOwner)
: m_DSTypeOwned(DSTypeOwned),
m_DSIidOwned(DSIidOwned), m_DSTypeOwner(DSTypeOwner),
m_DSIidOwner(DSIidOwner)
{
}
bool operator == (const SDSIOwnedByKey &rcComp) const
{
return m_DSTypeOwned ==
rcComp.m_DSTypeOwned &&
m_DSIidOwned ==
rcComp.m_DSIidOwned &&
m_DSTypeOwner ==
rcComp.m_DSTypeOwner &&
m_DSIidOwner ==
rcComp.m_DSIidOwner;
}
DSType m_DSTypeOwned;
DSIid m_DSIidOwned;
DSType m_DSTypeOwner;
DSIid m_DSIidOwner;
};
class DataStore
{
typedef boost::multi_index_container<
SDSIOwnedByKey,
boost::multi_index::indexed_by<
boost::multi_index::ordered_unique<boost::multi_index::tag<ByOwnedTypeOw
nerTypeOwnerIdOwnedId>,
boost::multi_index::composite_key<SDSIOwnedByKey,
boost::multi_index::member<SDSIOwnedByKey, DSType,
&SDSIOwnedByKey::m_DSTypeOwned>,
boost::multi_index::member<SDSIOwnedByKey, DSType,
&SDSIOwnedByKey::m_DSTypeOwner>,
boost::multi_index::member<SDSIOwnedByKey, DSIid,
&SDSIOwnedByKey::m_DSIidOwner>,
boost::multi_index::member<SDSIOwnedByKey, DSIid,
&SDSIOwnedByKey::m_DSIidOwned>
>,
boost::multi_index::composite_key_compare<std::less<DSType>,std::less<DS
Type>, std::less<DSIid>, std::greater<DSIid>>
>
>
> TOwnedBySort;
typedef typename
TOwnedBySort::index<ByOwnedTypeOwnerTypeOwnerIdOwnedId>::type
OwnedBySort_ByOwnedTypeOwnerTypeOwnerId;
TOwnedBySort m_oOwnedBySort;
};
Instead of
>,
boost::multi_index::composite_key_compare<std::less<DSType>,std::less<DS
Type>, std::less<DSIid>, std::greater<DSIid>>
I want to write a compare function that compared all the values in one
function, like a complete record comparison something like
>, boost::multi_index::composite_key_compare<SDSIOwnedByKey>
And have an appropriate function which would get the whole record to
compare
Thanks
Brijesh
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net