38 bool Continuous =
false>
63 Input& in, Output& out)
66 if (!dispatch_read <Size> (in, size))
70 auto inserter = std::insert_iterator <Container> (result, result.begin());
74 if (!dispatch_read <Value> (in, x))
77 inserter = std::move(x);
80 out = std::move(result);
104 Input
const& in, Output& out)
107 if (!dispatch_write <Size> (size, out))
110 for (
auto const& x : in)
131 typename std::enable_if <
132 std::is_same <Value, type_extractor <Value>>::value &&
133 std::is_scalar <Value>::value,
137 Input& in, Output& out)
140 if (!dispatch_read <Size> (in, size))
146 if (!
stream_read(in, &out[0],
sizeof(out[0])*size))
149 out = std::move(result);
153 if (!
stream_read(in, &out[0],
sizeof(out[0])*size))
174 typename std::enable_if <
175 std::is_same <Value, type_extractor <Value>>::value &&
176 std::is_scalar <Value>::value,
180 Input
const& in, Output& out)
183 if (!dispatch_write <Size> (size, out))
186 if (!
stream_write(out, &in[0],
sizeof(in[0])*in.size()))