为什么下面的宏失败
#define XML_TEST(K, V) K = V;
struct teststruct {
teststruct() {
TEST("x_", 10);
}
int x_;
};
这不会编译并出现以下错误:
test.h:30: error: assignment of read-only location ‘"x_"’
#define XML_TEST(K, V) K = V;);
简单地做
teststruct() {
x_ = 10;
} ^
工作正常。我也没有在这里看到任何常量。有人知道我在这里缺少什么吗?
答案 0 :(得分:4)
TEST("x_", 10);
将处理成
"x_" = 10;
这绝对是一个问题,因为我们要分配给常量字符串。我相信你的意思
TEST(x_, 10);