C++ 使用自动类型的ostream_迭代器?

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”关键字的ostream_运算符

下面是我尝试过的,但是“auto”这个词用红色下划线,错误是“这里不允许使用auto”

我在这里需要
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&operatorTry
ostream\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)
。不过,它做了一个不必要的复制。