title: Passing a std::array of unknown size to a function
body: <p>In C++11, how would I go about writing a function (or method) that takes a std::array of known type but unknown size?</p>
  
  <pre><code>// made up example
  void mulArray(std::array&lt;int, ?&gt;&amp; arr, const int multiplier) {
      for(auto&amp; e : arr) {
          e *= multiplier;
      }
  }
  
  // lets imagine these being full of numbers
  std::array&lt;int, 17&gt; arr1;
  std::array&lt;int, 6&gt;  arr2;
  std::array&lt;int, 95&gt; arr3;
  
  mulArray(arr1, 3);
  mulArray(arr2, 5);
  mulArray(arr3, 2);
  </code></pre>
  
  <p>During my search I only found suggestions to use templates, but those seems messy (method definitions in header) and excessive for what I'm trying to accomplish.</p>
  
  <p>Is there a simple way to make this work, as one would with plain C-style arrays?</p>