小编Dmi*_*sov的帖子

“struct std::iterator_traits”中没有名为“value_type”的类型

我正在尝试实现一个简单的 ostream_itreator,它流式传输每个第 N 个元素,但我收到一个类型错误

error: no type named ‘value_type’ in ‘struct std::iterator_traits<outIterator<int> >’
       typedef typename iterator_traits<_OI>::value_type _ValueTypeO;
Run Code Online (Sandbox Code Playgroud)

代码:

#include <iostream>
#include <vector>
#include <iterator>


template<class T>
class outIterator {
    std::ostream *stream;
    size_t N;
    const char* delim;
    size_t counter = 0;
public:
    // initialization
    outIterator(std::ostream& out)
    : stream(&out)
    , N(1)
    , delim(" ")
    {}

    outIterator(std::ostream& out, size_t N, const char* delimiter)
    : stream(&out)
    , N(N)
    , delim(delimiter)
    {}

    // =
    outIterator<T>& operator= (const T& value) {
        if (counter % N == …
Run Code Online (Sandbox Code Playgroud)

c++ iterator c++11

0
推荐指数
1
解决办法
1893
查看次数

标签 统计

c++ ×1

c++11 ×1

iterator ×1