diff options
Diffstat (limited to 'include/comphelper/sequence.hxx')
-rw-r--r-- | include/comphelper/sequence.hxx | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/include/comphelper/sequence.hxx b/include/comphelper/sequence.hxx index 47bf0c5af9c4..17d1b67c0d64 100644 --- a/include/comphelper/sequence.hxx +++ b/include/comphelper/sequence.hxx @@ -369,6 +369,31 @@ namespace comphelper return o_Output; } + /** Copy (keys or values) from a associate container into a Sequence + + @tpl M map container type eg. std::map/std::unordered_map + + @return the generated Sequence + */ + template < typename M > + inline css::uno::Sequence< typename M::key_type > mapKeysToSequence( M const& map ) + { + css::uno::Sequence< typename M::key_type > ret( static_cast<sal_Int32>(map.size()) ); + typename M::key_type* pArray = ret.getArray(); + for (const auto& i : map) + *pArray++ = i.first; + return ret; + } + + template < typename M > + inline css::uno::Sequence< typename M::mapped_type > mapValuesToSequence( M const& map ) + { + css::uno::Sequence< typename M::mapped_type > ret( static_cast<sal_Int32>(map.size()) ); + typename M::mapped_type* pArray = ret.getArray(); + for (const auto& i : map) + *pArray++ = i.second; + return ret; + } } // namespace comphelper |