title: Why can't I decrement std::array::end()?
body: <p>I'm creating a convenient <code>display()</code> function template for container types. The output for the last element is different from the rest, thus I check when <code>myIterator != --cont.cend();</code>. This works for <code>std::vector</code>, but won't work for <code>std::array</code>. Why?</p>
  
  <p>Here's a MWE (not my actual code):</p>
  
  <pre><code>std::vector&lt;double&gt; vec({1,2});
  std::array&lt;double, 2&gt; arr({{1,2}});
  auto vecIt = --vec.end(); // OK
  auto arrIt = --arr.end(); // error: lvalue required as decrement operand
  </code></pre>