是否可以在外部cpp文件中创建模板功能而无需在cpp文件中声明其可能的类型?

时间:2019-07-13 13:37:14

标签: c++ templates struct

我正在创建一个小的C ++函数集,该函数集应能够将任何类型的定制结构写入二进制文件。 我试图制作一个包含所有功能并使用模板与用户提供的结构一起工作的文件,因为该功能应能够将开发人员使用该结构制作的任何类型的结构写入二进制文件

我在这里和其他论坛上都看到过一些答案,建议在cpp文件中声明要使用的数据类型,这将使​​我能够使用具有某些已指定类型的模板数据,但是,由于它必须处理定制结构,因此这对我来说不是解决方案。

这有可能吗?向量不是吗?使用外部文件中的模板使用不同类型的数据进行操作?

下面的代码完全可以满足我在外部文件中的需要,在main.cpp文件上可以正常工作,当然,因为它使用的模板可以支持任何类型的数据,而我却没有不必指定可能使用的数据。

template <typename data>
void writeBinary(string fileName, fstream *file, data fileContent) {
    file->open(fileName, ios::out | ios::binary);
    if (!file->is_open()) {
        throw 1; //Error 1: Could not open file.
    }
    file->write(reinterpret_cast<char *>(&fileContent), sizeof(data));
    file->close();
}

但是我需要将此文件保存在外部文件中,以便随时包含并使用。
反正有解决办法吗?我希望我已经足够清楚了,再加上任何语法错误,对不起,英语不是我的主要语言。
谢谢。

0 个答案:

没有答案