假設我有一些模板類:在C++ 11中序列化類型ID?
template<class T>
class Foo
{
void save(File& f);
/* load */ Foo(const File& f);
...
}
我有富的二進制文件格式。 Foo :: save保存到文件中,Foo(File)構造函數從文件中加載它。
當我保存它時,我想在頭文件中寫T的類型,然後當我加載它時,我想驗證在構造函數中使用的T與文件的T相同。
我應該如何生成這種類型的代碼?
(例如,我可以SHA的typeid的(T)。名稱()。然而,這可以在程序調用之間改變,有沒有更好的辦法?)
由於您正在編碼save()和load(),因此請將T放入代碼中。你看過Google的協議緩衝區嗎? –
@brianbeuning:你是什麼意思「把T放在代碼中」? –
我錯過了模板部分。沒關係。 –