C++ 使用自动类型的ostream_迭代器?
在大学考试准备中,我应该使用带“auto”关键字的ostream_运算符 下面是我尝试过的,但是“auto”这个词用红色下划线,错误是“这里不允许使用auto” 我在这里需要C++ 使用自动类型的ostream_迭代器?,c++,visual-studio-2013,ostream,C++,Visual Studio 2013,Ostream,在大学考试准备中,我应该使用带“auto”关键字的ostream_运算符 下面是我尝试过的,但是“auto”这个词用红色下划线,错误是“这里不允许使用auto” 我在这里需要auto,因为向量中的class属性属于另一个类的类型,无法从当前类中识别 ostream& operator<<(ostream& COUT, const Nastava& obj) { COUT << "<" << obj._datum <&
auto
,因为向量中的class属性属于另一个类的类型,无法从当前类中识别
ostream& operator<<(ostream& COUT, const Nastava& obj)
{
COUT << "<" << obj._datum << " - " << obj._satnica << "> <" << obj._prostorija << "> " << " <" << obj._predavac << "> " << obj._tipNastave;
COUT << endl << obj._predmet->Info();
ostream_iterator<auto> outit(COUT, "\n");
copy(obj._prisutni->begin(), obj._prisutni->end(), outit);
return COUT;
}
ostream&operatorTryostream\u iteratorbegin())>
@KerrekSB我不能说它有效——我需要同时重载operator=
和operator@KerrekSB:decltype(*it)
绑定生成引用类型。至少有必要对结果进行“std::decation_t”。@DietmarKühl:啊,是的,我在怀疑这样的事情。会弄得一团糟的ostream_iterator>
,然后我们不支持C++14,所以Decation_t
将不存在,等等@KerrekSB:简单的解决方法:auto x=*xxx->begin()编码>然后使用decltype(x)
。不过,它做了一个不必要的复制。