58 virtual INT_PTR
CompareTo(
const TYP& t1,
const TYP& t2)
const = 0;
67 virtual bool IsEqualTo(
const TYP& t1,
const TYP& t2)
const
99 INT_PTR CompareTo(
const TYP& t1,
const TYP& t2)
const
104 bool IsEqualTo(
const TYP& t1,
const TYP& t2)
const
116 INT_PTR m_SubSub(
const T& t, LPCVOID t1, LPCVOID t2)
const
118 return static_cast<const BYTE *
>(t1) -
static_cast<const BYTE *
>(t2);
123 INT_PTR m_SubSub(
const T& t, ...)
const
129 "比較機能のない[%s]型を IComparator指定無しで比較しました。結果は常に EVEN になります。",
136 "比較機能のない型を IComparator指定無しで比較しました。結果は常に EVEN になります。"
144 INT_PTR m_Sub(
const T& t1,
const T& t2)
const
146 return m_SubSub(t1, t1, t2);
150 template<> INT_PTR m_Sub(
const CAscii& i1,
const CAscii& i2)
const
162 #define _COLLECTCOMP(TY) \
163 template<> INT_PTR m_Sub(const TY& i1, const TY& i2) const { \
164 if ( i1 == i2 ){ return 0; } \
165 return (i1 > i2) ? 1 : -1; \
176 _COLLECTCOMP(ULONGLONG)
177 _COLLECTCOMP(LONGLONG)
178 _COLLECTCOMP(
long double)
182 _COLLECTCOMP(CString)
187 INT_PTR CompareTo(
const TYP& t1,
const TYP& t2)
const
189 return m_Sub(t1, t2);
203 static TMyCompCompareT<T> s_comp;
214 static TMyCompElse s_comp;
223template<
typename TYP>
226 return CAutoComparatorT<TYP>::MakeAutoComp(
static_cast<TYP*
>(NULL));
int Compare(const TYP *lpszSubject) const
[確認] 文字列比較
virtual INT_PTR CompareTo(const TYP &t1, const TYP &t2) const =0
[確認] 比較
static IComparatorT & GetDefault(void)
[作成] 汎用コンパレータ取得.
virtual ~IComparatorT(void)
デストラクタ
virtual bool IsEqualTo(const TYP &t1, const TYP &t2) const
[確認] 比較