diff --git a/include/msgpack/adaptor/cpp11/forward_list.hpp b/include/msgpack/adaptor/cpp11/forward_list.hpp index 6f9fb575..fe160d7d 100644 --- a/include/msgpack/adaptor/cpp11/forward_list.hpp +++ b/include/msgpack/adaptor/cpp11/forward_list.hpp @@ -55,7 +55,8 @@ inline void operator<< (object::with_zone& o, const std::forward_list& v) o.via.array.ptr = nullptr; o.via.array.size = 0; } else { - object* p = static_cast(o.zone->allocate_align(sizeof(object)*v.size())); + object* p = static_cast( + o.zone->allocate_align(sizeof(object)*std::distance(v.begin(), v.end()))); for(auto const& e : v) *p++ = object(e, o.zone); } }