我想在windows中編譯nghttp2,opensource。我已經在Linux中成功編譯了。在Visual Studio中std :: begin和std :: end迭代器
我面臨從下面的一段代碼編譯錯誤。 *
template <size_t N> struct Memchunk {
public:
Memchunk(Memchunk *next_chunk)
: pos(std::begin(buf)), last(pos), knext(next_chunk), next(nullptr) {}
size_t len() const { return last - pos; }
size_t left() const { return std::end(buf) - (const size_t) last; }
void reset() { pos = last = std::begin(buf); }
std::array<uint8_t, N> buf;
uint8_t *pos, *last;
Memchunk *knext;
Memchunk *next;
static const size_t size = N;
};
*
我收到以下錯誤。
error C2440: 'return': cannot convert from'std::_Array_const_iterator<_Ty,16384>' to 'std::size_t'
我在Linux中沒有遇到上述錯誤。我是否缺少特定於Visual Studio的內容?
看起來很不好C++代碼。 – Stargateur
gcc也不喜歡它。 http://ideone.com/SJNXbJ。什麼編譯器接受這個?這個錯誤對我來說很有意義。 – Persixty
爲什麼不'std :: array :: iterator pos,last;'?我不明白。 –
ZDF