-block">
namespace boost { namespace python {

template &lt;
    class A0
  , class A1 = parameter::void_
  , class A2 = parameter::void_
  , class A3 = parameter::void_
&gt;
struct class_
{
    // Create ArgumentPack
    typedef typename
      class_signature::bind&lt;A0,A1,A2,A3&gt;::type
    args;

    // Extract first logical parameter.
    typedef typename parameter::value_type&lt;
      args, tag::class_type&gt;::type class_type;

    typedef typename parameter::value_type&lt;
      args, tag::base_li