mirror of
https://github.com/matrix-construct/construct
synced 2025-02-17 01:00:10 +01:00
ircd::util: Add output iterator bounded pointers transform.
This commit is contained in:
parent
39b49599e5
commit
070f359707
1 changed files with 19 additions and 1 deletions
|
@ -35,13 +35,31 @@ pointers(input_begin&& ib,
|
|||
});
|
||||
}
|
||||
|
||||
/// Transform input sequence values to pointers in the output sequence
|
||||
/// using two input iterators [begin, end] and one output iterator [begin]
|
||||
template<class input_begin,
|
||||
class input_end,
|
||||
class output_begin,
|
||||
class output_end>
|
||||
auto
|
||||
pointers(input_begin&& ib,
|
||||
const input_end &ie,
|
||||
output_begin&& ob,
|
||||
const output_end &oe)
|
||||
{
|
||||
for(; ib != ie && ob != oe; ++ib, ++ob)
|
||||
*ob = std::addressof(*ib);
|
||||
|
||||
return ob;
|
||||
}
|
||||
|
||||
template<class input_container,
|
||||
class output_container>
|
||||
auto
|
||||
pointers(input_container&& ic,
|
||||
output_container &oc)
|
||||
{
|
||||
return pointers(begin(ic), end(ic), begin(oc));
|
||||
return pointers(begin(ic), end(ic), begin(oc), end(oc));
|
||||
}
|
||||
|
||||
} // namespace util
|
||||
|
|
Loading…
Add table
Reference in a new issue