background image

  {
 
  public:
 
  static bool IsEqual(const SpecializedType<T>& lh, const 

SpecializedType<T>& rh)
 
  {
 
  return Compare<T>::IsEqual(lh.x1 + lh.x2, rh.x1 + rh.x2);
 
  }
 
  };
 

 

  这就是三种类型的模板特化, 我们可以这么使用这个 Compare 类:
 
  // int
 
  int i1 = 10;
 
  int i2 = 10;
 
  bool r1 = Compare<int>::IsEqual(i1, i2);
 
  // float
 
  float f1 = 10;
 
  float f2 = 10;
 
  bool r2 = Compare<float>::IsEqual(f1, f2);
 
  // double
 
  double d1 = 10;
 
  double d2 = 10;
 
  bool r3 = Compare<double>::IsEqual(d1, d2);
 
  // pointer