qicosmos/Kapok

无法将用户自定义类型的数组作为DeSerializer::Deserialize的第一个参数

Closed this issue · 1 comments

测试代码如下:

        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");处编译错误(注释掉该行则可正常编译).

是GCC语法检查比较严格,已经修改了。