title: Why std::transform doesn't guarantee the order (but for_each guarantee the order)? Doesn't this allow trick implementation for performance?
body: <p>I just realize the standard doesn't guarantee the order of applying function callback in <code>std::transform</code>. And it doesn't allow the callback function or functor have side effect. But at the same time <code>std::for_each</code> actually guarantee the order.</p>
  
  <p>One guess is the transform can using high performance algorithm which doesn't guarantee order, But O(N) is the best algorithm already.</p>
  
  <p>So why the standard doesn't make the <code>transform</code> have the behavior as <code>for_each</code> from the view of apply callback function order? The user will benefit form this guarantee.</p>