title: Reverse cumulative product of parameter pack
body: <p>In c++17 we can easily get the cumulative product of a parameter pack like this:</p>
  
  <pre><code>template&lt;typename... Xs&gt; constexpr std::array&lt;int, sizeof...(Xs)+1&gt; cumulative_product(int x0, Xs... xs) {
      return {x0, x0 *= xs ...};
  }
  
  constexpr auto cp = cumulative_product(1,2,3,4); // -&gt; 1, 2, 6, 24
  </code></pre>
  
  <p>Is there a similarly elegant way to get the product of the reverse-ordered arguments -> [4, 12, 24, 24]?</p>
  
  <p><strong>NB:</strong> in the original question I had a wrong expected result (24,6,2,1) + imprecise wording of the question. So reversing the output array is not an option here.</p>
  
  <p>Given the same ordering of the input arguments, of course.</p>
  
  <p>I've tried and played around with fold expressions, but it blows up the code size real quick as I couldn't find a way of doing it in the return statement directly. </p>