26.5 — 局部模板特化
本课和下一课是为那些渴望更深入了解 C++ 模板的人提供的可选阅读材料。模板偏特化并不常用(但在特定情况下可能很有用)。在课程中,您学习了如何使用表达式参数来参数化模板类。我们来看看……
本课和下一课是为那些渴望更深入了解 C++ 模板的人提供的可选阅读材料。模板偏特化并不常用(但在特定情况下可能很有用)。在课程中,您学习了如何使用表达式参数来参数化模板类。我们来看看……
在课程中,我们讨论了编译器如何使用函数模板来实例化函数,然后编译这些函数。我们还注意到,如果函数模板中的代码试图执行实际类型不支持的某些操作(例如添加整数……),则这些函数可能无法编译。
假设您想编写一个函数来计算两个数字中的最大值。您可以这样做: int max(int x, int y) { return (x < y) ? y : x; // 注意:我们使用 < 而不是 > 因为 std::max 使用 < } 虽然……
C++ 中的文件 I/O 与普通 I/O 非常相似(只增加了一些细微的复杂性)。C++ 中有 3 个基本的文件 I/O 类:ifstream(派生自 istream)、ofstream(派生自 ostream)和 fstream(派生自 iostream)。这些类分别用于文件输入、输出和输入/输出。要使用这些……
ios_base 类包含几个状态标志,用于指示在使用流时可能发生的各种条件:尽管这些标志位于 ios_base 中,但由于 ios 是从 ios_base 派生的,并且 ios 比 ios_base 输入更少,因此它们通常通过 ios 访问(例如作为 std::ios::failbit)。ios 也……
到目前为止,您看到的所有 I/O 示例都写入了 cout 或从 cin 读取。然而,还有另一组类称为字符串流类,它们允许您使用熟悉的插入 (<<) 和提取 (>>) 运算符来处理字符串。与……类似