Comment vérifier si un type de données est “défini” avec typedef

J'ai été confronté à ce problème aujourd'hui et je me demandais comment faire pour vérifier si un nouveau type défini avec typedef est vraiment défini quelque part. Pour donner un exemple, j'ai commencé à utiliser Xerces-c3 bibliothèque que j'ai construit à partir du code source et a écrit un xml2text convertisseur. Mais je ne pourrais pas trouver Xerces-c3 port sur fbsd installé de telle sorte Xerces-c2 bibliothèque.

Quand j'ai essayé de recompiler mon code source j'ai eu l'erreur suivante:

XML2Text.cc:83: error: cannot declare variable 'handler' to be of abstract type 'XML2TextHandlers'
XML2TextHandlers.h:32: note:   because the following virtual functions are pure within 'XML2TextHandlers':
/usr/local/include/xercesc/framework/XMLFormatter.hpp:454: note:  virtual void xercesc_2_7::XMLFormatTarget::writeChars(const XMLByte*, unsigned int, xercesc_2_7::XMLFormatter*)

Je suis en utilisant la définition suivante dans mon fichier d'en-tête pour writeChars méthode

virtual void writeChars(const XMLByte* const toWrite,
                        const XMLSize_t count,
                        XMLFormatter* const formatter );

J'ai vérifié que XMLSize_t n'est rien, mais unsigned int déclaré suivants:

#define XERCES_SIZE_T size_t  
typedef XERCES_SIZE_T XMLSize_t;

Donc, si je veux faire un code compatible à la fois les bibliothèques comment vais-je le faire?
D'une façon que je peux penser à est de vérifier si la version de la bibliothèque et de définir XMLSize_t en conséquence. D'une autre manière?

Merci,

Shripad