无法将用户自定义类型的数组作为DeSerializer::Deserialize的第一个参数
Closed this issue · 1 comments
lucklove commented
测试代码如下:
struct UserClass {
int x;
char y;
std::string z;
META(x, y, z);
bool operator==(const UserClass& u) {
return u.x == x && u.y == y && u.z == z;
}
};
std::cout << "user class array test..." << std::endl;
UserClass user_array1[] = { { 1, 'a', "hello" }, { 2, 'b', "world" }};
UserClass user_array2[2];
sr.Serialize(user_array1, "array1");
dr.Parse(sr.GetString());
dr.Deserialize(user_array2, "array1");
assert(user_array1[0] == user_array2[0] && user_array1[1] == user_array2[1]);
std::cout << "pass" << std::endl;
在 dr.Deserialize(user_array2, "array1");处编译错误(注释掉该行则可正常编译).
qicosmos commented
是GCC语法检查比较严格,已经修改了。