Я пытаюсь реализовать метод, аналогичный 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."
Любые предложения?