两个不同流的泛型函数
Generic function for two different streams
我有一个函数,read()
,它使用ifstream
从图像中读取数据。我还重载了与read()
具有完全相同定义的图像的I/O运算符>>
,除了operator >>
适用于istream
。
void read (string filename);
std::istream & operator >> (std::istream & is, Image & img); //overload >> operator
//same definition for both
有什么方法可以实现可用于read()
和operator>>
重载的通用函数吗?
由于std::ifstream
是一个std::istream
,你的read函数可能只是调用operator >>
,像这样:
std::istream & operator >> (std::istream& is, Image& img);
void read (string filename, Image& img)
{
std::ifstream is(filename);
if (is.is_open()) {
is >> img;
}
}
相关文章:
- 链表的泛型函数remove()与成员函数remove)
- 以特征类型作为参数的泛型函数回调
- 传递非泛型函数的最有效方法是什么?
- 泛型函数反向打印任何矢量,编译器出错
- 是否可以在C++中创建泛型函数指针?
- 将泛型函数及其参数传递给元函数
- C++ 中的泛型函数持有者
- C++ 验证使泛型函数
- 两个不同流的泛型函数
- 如何覆盖 'const T&' 和 'T&&' 的泛型函数,其中 T 可以作为引用?
- 如何创建公开泛型函数的 DLL
- 为什么 std::apply 使用泛型函数失败
- 在某个值范围内生成 BST 的泛型函数
- 无法在循环中实例化泛型函数
- MISRA C++规则 14-5-1:在与类型关联的命名空间中声明的泛型函数模板的名称
- 使用泛型函数调用打印结构的所有嵌套成员变量
- C++ 使用数组作为参数创建泛型函数
- 泛型函数是否可以用于对结构求和
- C++为所有 std::sets 编写泛型函数
- 指向类成员函数的泛型函数指针