Fold expressions and empty parameters pack: what's the expected result?
<p>Consider the following minimal example:</p>

<pre><code>#include&lt;cstddef&gt;

template&lt;std::size_t... I&gt;
constexpr auto sum() { return (I + ...); }

template&lt;bool... B&gt;
constexpr auto check() { return (B &amp;&amp; ...); }

int main() {
    static_assert(6 == sum&lt;1,2,3&gt;(), "!");
    // static_assert(0 == sum&lt;&gt;(), "!");
    static_assert(check&lt;true, true&gt;(), "!");
    static_assert(check&lt;&gt;(), "!");
}
</code></pre>

<p>The commented line doesn't compile.<br>
The same applies using <code>*</code> instead of <code>+</code>.<br>
The one involving booleans works instead.</p>

<p><a href="http://eel.is/c++draft/expr.prim.fold" rel="noreferrer">Here</a> (working draft) I haven't found mentions about empty parameter packs.<br>
On the other side, <a href="https://isocpp.org/files/papers/n4295.html" rel="noreferrer">here</a> (isocpp) it seems that the default result in the case above is <code>int()</code>.</p>

<p>What's exactly the expected behavior when mixing fold expressions and an empty parameters pack?</p>