Peter Bartlett wrote:
In addition to tagging, you can also look into whether true_typedef is suitable. Matthew Wilson's STLSoft has an implementation.

true_typedef seems like a really good choice.  I'm unclear what the STLSOFT_GEN_OPAQUE macro really provides.  The macro is defined as follows.

#define STLSOFT_GEN_OPAQUE (type)   typedef struct __stlsoft_htype##type{ int i; } const* type;

So to use the STLSoft version I have to use the macro and then provide the typedef.  It would look like this.

STLSOFT_GEN_OPAQUE (ConfigName_u)
typedef stlsoft::true_typedef<std::string, ConfigName_u>   ConfigName;

How is this better than just declaring a struct in the typedef itself.  It would look like this.

typedef stlsoft::true_typedef<std::string, struct ConfigName_u>   ConfigName;

What does having a pointer to a struct provide that a normal struct doesn't?

Ryan