 initialization arguments
            <code class="computeroutput">a<sub>0</sub>,...a<sub>n</sub></code>.
            If <code class="computeroutput">proto::is_aggregate&lt;T&gt;::value</code> is <code class="computeroutput">true</code>,
            then an object of type <code class="computeroutput">T</code> will be initialized as
            <code class="computeroutput">T t = {a<sub>0</sub>,...a<sub>n</sub>};</code>.
            Otherwise, it will be initialized as
            <code class="computeroutput"