C++高手帮忙看看,到底是啥错误。 5C

代码:

 template <typename T> 
struct serializer
{
    enum {specialized = 0};
    template <class Archive>
    inline static void serialize(Archive& ar, T& t)
    {
        t.serialize(ar);
    }
};

提示错误:error C2065: “Archive”: 未声明的标识符 该如何修改?

c c++
0

3个回答

因为你这个Archive类没定义,所以识别不了,你把头文件声明的加上,或者把代码在贴全一点

1

1.确认头文件引用是不是正确,如果vs F12进去 看看是不是你要引用的头文件
2.如果 你已经引用了头文件,那么你看看这个类头文件中有没有加命名空间 namespace xxxx,加上xxxx:Archive或using namespace xxxx

1

我这里测试没有任何问题,可以编译,完整代码,编译器是gcc,但是我认为VC++也可以编译。

 #include <iostream>

using namespace std;

template <typename T> 
struct serializer
{
    enum {specialized = 0};
    template <class Archive>
    inline static void serialize(Archive& ar, T& t)
    {
        t.serialize(ar);
    }
};


int main() {
    return 0;
}

0
caozhy
贵阳挖掘机马善福,自备车辆专业挖游泳池 回复qq_39409870: h内容是啥,贴出来看看。
10 个月之前 回复
qq_39409870
qq_39409870 引入的外部的 .h 文件,这段代码在那个 .h文件中,编译时就出现刚才那个错误。
10 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!