cmTypeMacro: Add a class to eat the semicolon following the macro use.

Apply the same workaround to the cmCPackTypeMacro. Additionally
change that macro to not use 'class' as a macro parameter.
This commit is contained in:
Stephen Kelly 2014-04-03 21:28:10 +02:00
parent ff710539ab
commit 4bef02e7aa
2 changed files with 6 additions and 4 deletions

View File

@ -22,9 +22,10 @@
// Forward declarations are insufficient since we use them in // Forward declarations are insufficient since we use them in
// std::map data members below... // std::map data members below...
#define cmCPackTypeMacro(class, superclass) \ #define cmCPackTypeMacro(klass, superclass) \
cmTypeMacro(class, superclass); \ cmTypeMacro(klass, superclass); \
static cmCPackGenerator* CreateGenerator() { return new class; } static cmCPackGenerator* CreateGenerator() { return new klass; } \
class cmCPackTypeMacro_UseTrailingSemicolon
#define cmCPackLogger(logType, msg) \ #define cmCPackLogger(logType, msg) \
do { \ do { \

View File

@ -378,7 +378,8 @@ static thisClass* SafeDownCast(cmObject *c) \
return static_cast<thisClass *>(c); \ return static_cast<thisClass *>(c); \
} \ } \
return 0;\ return 0;\
} } \
class cmTypeMacro_UseTrailingSemicolon
inline bool cmHasLiteralPrefixImpl(const std::string &str1, inline bool cmHasLiteralPrefixImpl(const std::string &str1,
const char *str2, const char *str2,