QualType in clang

  http://clang.llvm.org/docs/InternalsManual.html#the-qualtype-class

the QualType class is designed to be an efficient value class which contains a pointer to the unqualified type together with the qualifiers (const, volatile etc.). The class is implemented as a llvm::PointerIntPair

/// PointerIntPair - This class implements a pair of a pointer and small

/// integer.  It is designed to represent this in the space required by one

/// pointer by bitmangling the integer into the low part of the pointer.  This

/// can only be done for small integers: typically up to 3 bits, but it depends

/// on the number of bits available according to PointerLikeTypeTraits for the

/// type.

///

/// Note that PointerIntPair always puts the IntVal part in the highest bits

/// possible.  For example, PointerIntPair<void*, 1, bool> will put the bit for

/// the bool into bit #2, not bit #0, which allows the low two bits to be used

/// for something else.  For example, this allows:

///   PointerIntPair<PointerIntPair<void*, 1, bool>, 1, bool>

/// ... and the two bools will land in different bits.

  

你可能感兴趣的:(type)