42class BasicItemPairGroupComputeFunctor
57 , m_sub_item_kind(sik)
58 , m_link_item_kind(lik)
64 bool operator<(
const AdjacencyType& rhs)
const
66 if (m_item_kind != rhs.m_item_kind)
67 return m_item_kind < rhs.m_item_kind;
68 if (m_sub_item_kind != rhs.m_sub_item_kind)
69 return m_sub_item_kind < rhs.m_sub_item_kind;
70 return m_link_item_kind < rhs.m_link_item_kind;
74 typedef void (BasicItemPairGroupComputeFunctor::*ComputeFunctor)(
ItemPairGroupImpl* array);
76 class AdjacencyComputeFunctor
81 AdjacencyComputeFunctor(BasicItemPairGroupComputeFunctor* ptr,
85 , m_func_ptr(func_ptr)
92 (m_ptr->*m_func_ptr)(m_array);
97 BasicItemPairGroupComputeFunctor* m_ptr;
99 ComputeFunctor m_func_ptr;
113 std::map<AdjacencyType, ComputeFunctor> m_compute_adjacency_functions;
130 void _computeAdjacency(
ItemPairGroupImpl* array, GetItemVectorViewFunctor get_item_enumerator,
131 GetItemVectorViewFunctor get_sub_item_enumerator);