【发布时间】:2019-12-06 13:29:12
【问题描述】:
我已经创建了这个模板函数:
// Output stream for container of type C
template<class C>
ostream& operator<<(ostream& os, const C& c) {
os << "[";
for (auto& i : c) {
os << i;
if (&i != &c.back()) os << ", ";
}
os << "]" << endl;
return os;
}
但我有这个错误:
错误:重载运算符 '
错误在函数体的第一行。
【问题讨论】:
-
你真的不应该提供这样不受约束的模板。您也不应该为您不拥有的类型重载运算符。如果是我,我会创建一个通用的
print或stringify函数并使用它来打印/返回能够打印的字符串。 -
您已经简要描述了编译显示的代码时会发生什么:一条错误消息。您的叙述到此结束,您的叙述中似乎缺少的是一个实际问题。您的具体问题是什么?
-
我注意到如果 v 是一个 STL 容器我不能 "cout 的重载