ions
    template &lt;class Init&gt;
    class_&amp; def(Init);

    // defining methods
    template &lt;class F&gt;
    class_&amp; def(char const* name, F f);
    template &lt;class Fn, class A1&gt;
    class_&amp; def(char const* name, Fn fn, A1 const&amp;);
    template &lt;class Fn, class A1, class A2&gt;
    class_&amp; def(char const* name, Fn fn, A1 const&amp;, A2 const&amp;);
    template &lt;class Fn, class A1, class A2, class A3&gt;
    class_&amp; def(char const* name, Fn fn, A1 const&amp;, A2 