Thanks again Joel.<br><br><div class="gmail_quote">2010/1/30 joel falcou <span dir="ltr">&lt;<a href="mailto:joel.falcou@lri.fr">joel.falcou@lri.fr</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div class="im">Olivier Tournaire wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi all,<br>
<br>
Given an mpl sequence of types such as: typedef mpl::vector&lt;T0, T1, T2, T3&gt; arg_types;<br>
<br>
1) the users of my library provide functors such as F (where T0 and T1 may have been any of the types of arg_types:<br>
<br>
class F {<br>
�typedef mpl::pair&lt;T0,T1&gt; signature_type;<br>
�double operator()(const T0&amp; t0, T1&amp; t1);<br>
};<br>
is there a way to generate signature_type automatically ?<br>
<br>
</blockquote></div>
Retrieve the operator() params usign aprameter_types, it&#39;ll end up as<br>
<br>
vector&lt;F*,T0,T1&gt;<br>
<br>
then use mpl::pop_front to remove the unwanted pointer to member<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
2) if the operator() is overloaded, the user class currently has to typedef an mpl::vector of mpl::pairs such as<br>
<br>
class G {<br>
�typedef mpl::vector&lt;mpl::pair&lt;T2,T3&gt;, mpl::pair&lt;T1,T1&gt;, mpl::pair&lt;T3,T1&gt; &gt; signature_type;<br>
�double operator()(const T2&amp; t2, T3&amp; t3);<br>
�double operator()(const T1&amp; t1, T1&amp; t1);<br>
�double operator()(const T3&amp; t3, T1&amp; t1);<br>
};<br>
<br>
</blockquote></div>
Why don&#39;t you use something like the result_of protocol ?<br></blockquote><div><br>Why not. Could you give us more details ?<br><br>Regards<br>�</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">


Maybe easier<br>
<br>
-- <br>
___________________________________________<br>
Joel Falcou - Assistant Professor<br>
PARALL Team - LRI - Universite Paris Sud XI<br>
Tel : (+33)1 69 15 66 35<br>
<br>
<br>
_______________________________________________<br>
Boost-users mailing list<br>
<a href="mailto:Boost-users@lists.boost.org" target="_blank">Boost-users@lists.boost.org</a><br>
<a href="http://lists.boost.org/mailman/listinfo.cgi/boost-users" target="_blank">http://lists.boost.org/mailman/listinfo.cgi/boost-users</a><br>
</blockquote></div><br>