假设我有一些模板类:
template<class T>
class Foo
{
void save(File& f);
/* load */ Foo(const File& f);
...
}
我有 Foo 的二进制文件格式。Foo::save 保存到文件中,Foo(File) 构造函数从文件中加载它。
当我保存它时,我想在标题中写入 T 的类型,然后当我加载它时,我想验证构造函数中使用的 T 是否与文件的相同。
我应该如何生成这种类型代码?
(例如,我可以对 typeid(T).name() 进行 SHA。但是这可以在程序调用之间改变。有更好的方法吗?)