AAPT2: Expose split support to command line

Bug:30445078
Change-Id: If4b8530dba71b9059b8e62c04757da99c1119d22
diff --git a/tools/aapt2/util/Util.h b/tools/aapt2/util/Util.h
index 4a10987..09f9129 100644
--- a/tools/aapt2/util/Util.h
+++ b/tools/aapt2/util/Util.h
@@ -101,12 +101,16 @@
  * Writes a set of items to the std::ostream, joining the times with the provided
  * separator.
  */
-template <typename Iterator>
-::std::function<::std::ostream&(::std::ostream&)> joiner(Iterator begin, Iterator end,
-        const char* sep) {
-    return [begin, end, sep](::std::ostream& out) -> ::std::ostream& {
-        for (auto iter = begin; iter != end; ++iter) {
-            if (iter != begin) {
+template <typename Container>
+::std::function<::std::ostream&(::std::ostream&)> joiner(const Container& container,
+                                                         const char* sep) {
+    using std::begin;
+    using std::end;
+    const auto beginIter = begin(container);
+    const auto endIter = end(container);
+    return [beginIter, endIter, sep](::std::ostream& out) -> ::std::ostream& {
+        for (auto iter = beginIter; iter != endIter; ++iter) {
+            if (iter != beginIter) {
                 out << sep;
             }
             out << *iter;