Boost C++ Libraries: Ticket #10898: Variadic constructor for ssl::stream so it can wrap streams whose constructors take n arguments https://svn.boost.org/trac10/ticket/10898 <p> I have specific use case ( passing through a proxy ) where I need to wrap an ssl stream in an ssl stream. This becomes possible if I change the constructor for ssl stream as follows. </p> <div class="wiki-code"><div class="code"><pre><span class="k">template</span> <span class="o">&lt;</span><span class="k">typename</span> <span class="p">...</span><span class="n">Arg</span><span class="o">&gt;</span> <span class="n">stream</span><span class="p">(</span><span class="n">context</span><span class="o">&amp;</span> <span class="n">ctx</span><span class="p">,</span> <span class="n">Arg</span><span class="o">&amp;&amp;</span> <span class="p">...</span><span class="n">arg</span><span class="p">)</span> <span class="o">:</span> <span class="n">next_layer_</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">forward</span><span class="o">&lt;</span><span class="n">Arg</span><span class="o">&gt;</span><span class="p">(</span><span class="n">arg</span><span class="p">)...),</span> <span class="n">core_</span><span class="p">(</span><span class="n">ctx</span><span class="p">.</span><span class="n">native_handle</span><span class="p">(),</span> <span class="n">next_layer_</span><span class="p">.</span><span class="n">lowest_layer</span><span class="p">().</span><span class="n">get_io_service</span><span class="p">())</span> <span class="p">{</span> <span class="n">backwards_compatible_impl_</span><span class="p">.</span><span class="n">ssl</span> <span class="o">=</span> <span class="n">core_</span><span class="p">.</span><span class="n">engine_</span><span class="p">.</span><span class="n">native_handle</span><span class="p">();</span> <span class="p">}</span> <span class="p">}}}}</span> </pre></div></div> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/10898 Trac 1.4.3