在“Essential C++”一书(更具体地说,第 2.7 部分)中,作者通过以下示例简要讨论了模板函数的用法,该示例显示诊断消息,然后遍历向量的元素
template <typename T>
void display_message(const string& msg, const vector<T>& vec)
{
cout << msg;
for (int i = 0; i < vec.size(); ++i)
cout << vec[i] << ' ';
}
所以,这个例子引起了我的兴趣,因为我(可能和许多其他业余开发者一样)总是理所当然地认为,在大多数应用程序中,标准输入/输出流被用于通信和数据处理。然后作者提到,这种实现 display_message 的方式更加灵活。你能给我举个例子来说明这种灵活性“闪耀”的情况吗?换句话说,是否存在可选的第三个参数采用另一个输入/输出表示(例如,嵌入式设备)的情况,或者它只是一个简单的添加,应该用于简单的构造而不是极端我试图描述的情况?
编辑:正如@Matteo Italia所注意到的,这是函数声明
void display_message(const string&, const vector<T>&, ostream& = cout);