Я пытаюсь реализовать метод, аналогичный static_assert, который определен в стандарте С++ 11. Основная проблема заключается в том, как компилятор С++ записывает текстовое сообщение, передаваемое в static_assert, как const char*? Я могу заставить компилятор написать сообщение типа A_is_not_POD. Это то, что у меня есть:
#define MY_STATIC_ASSERT(condition, name) \
typedef char name[(condition) ? 1 : -1];
Но было бы неплохо заставить компилятор написать что-то вроде "Error: A is not POD." Любые предложения?