PointerComparison Struct Reference

List of all members.

Static Public Member Functions

template<typename T >
static bool equal (const T *p1, const T *p2)
template<typename T , typename U >
static bool equal (const T *, const U *)


Detailed Description

A class to perform comparisons of arbitrary pointers for equality. In some circumstances, one would like to make sure that two arguments to a function are not the same object. One would, in this case, make sure that their addresses are not the same. However, sometimes the types of these two arguments may be template types, and they may be the same type or not. In this case, a simple comparison as in &object1 != &object2 does only work if the types of the two objects are equal, but the compiler will barf if they are not. However, in the latter case, since the types of the two objects are different, we can be sure that the two objects cannot be the same.

This class implements a comparison function that always returns false if the types of its two arguments are different, and returns p1 == p2 otherwise.

Author:
Wolfgang Bangerth, 2004

Member Function Documentation

template<typename T >
bool PointerComparison::equal ( const T *  p1,
const T *  p2 
) [inline, static]

Comparison function for pointers of the same type. Returns true if the two pointers are equal.

template<typename T , typename U >
bool PointerComparison::equal ( const T *  ,
const U *   
) [inline, static]

Comparison function for pointers of different types. The C++ language does not allow comparing these pointers using operator==. However, since the two pointers have different types, we know that they can't be the same, so we always return false.


The documentation for this struct was generated from the following file:

deal.II documentation generated on Sat Aug 15 16:52:11 2009 by doxygen 1.5.9