如何检查迭代器是否是c ++中的output_iterator?

时间:2016-12-01 01:29:13

标签: c++ iterator c++-concepts

template<typename Iterator>
void put_value(Iterator pos, int n)
{
    static_assert(IsOutputIterator<Iterator>); 
    //
    // How to implement IsOutputIterator?
    //

    *pos = n;
}

std::iterator_traits<Iterator>::iterator_category没有帮助。例如:vector<int>::iterator显而易见output_iterator,但std::iterator_traits<vector<int>::iterator>::iterator_category将返回random_access_iterator,可能不是output_iterator,例如const_iterator

有没有可行的方法来检查迭代器是否是c ++中的output_iterator?

0 个答案:

没有答案