我一直在尝试实现类似于static_assertC++ 11标准中定义的方法.主要问题是C++编译器如何将传递给的文本消息static_assert写成const char*?我可以让编译器写一个像这样的消息A_is_not_POD.这就是我所拥有的:
#define MY_STATIC_ASSERT(condition, name) \
typedef char name[(condition) ? 1 : -1];
Run Code Online (Sandbox Code Playgroud)
但是让编译器编写类似"Error: A is not POD."Any建议的东西会很好吗?
从这里开始的讨论开始,标准是否为字符指定了值?那么,'0'保证是48?这就是ASCII告诉我们的,但它有保证吗?如果没有,你看到任何编译器'0'不是48?