代码:
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”: 未声明的标识符 该如何修改?
因为你这个Archive类没定义,所以识别不了,你把头文件声明的加上,或者把代码在贴全一点
我这里测试没有任何问题,可以编译,完整代码,编译器是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;
}
1.确认头文件引用是不是正确,如果vs F12进去 看看是不是你要引用的头文件
2.如果 你已经引用了头文件,那么你看看这个类头文件中有没有加命名空间 namespace xxxx,加上xxxx:Archive或using namespace xxxx