// C++模版函数: 按成员变量比较大小
// VC8.0
// 在C++11, 可以用lambda简单解决这个问题,不必使用模版
#include "stdafx.h"
template<typename T, typename M, M T::* const m>
bool CompareMember(const T& t1, const T& t2)
{
return t1.*m < t2.*m;
}
struct A
{
int x;
int y;
};
int _tmain(int argc, _TCHAR* argv[])
{
A a,b;
a.x = 100;
a.y = 200;
b.x = 200;
b.y = 100;
bool c1 = CompareMember<A, int, &A::x>(a, b);
bool c2 = CompareMember<A, int, &A::y>(a, b);
return 0;
}
本文介绍了一个用于比较C++类中成员变量大小的模板函数实现,并通过示例展示了如何使用该函数来比较两个对象的特定成员变量。
1万+

被折叠的 条评论
为什么被折叠?



