ciao.
per risolvere ho usato il meccanismo di forwarding.
codice:
template<typename B>
class Wrapper : public B{

  template<typename T1>
  Wrapper (const T1& x1)
    : B (x1)
  {
  }

  template<typename T1, typename T2>
  Wrapper (const T1& x1, const T2& x2)
    : B (x1, x2)
  {
  }

  template<typename T1, typename T2, typename T3>
  Wrapper (const T1& x1, const T2& x2, const T3& x3)
    : B (x1, x2, x3)
  {
  }
};
cosi da quello che ho capito i costruttori possono essere i piu disparati(e con tipi diversi) ma vengono rindirizzati ai template col numero di parametro corretto invece che dare errore.
se qualcuno ha tempo che puo spiegare meglio...ho anche letto su google che nel c++ 11 esiste un meccanismo detto di perfect forwarding in cosa differisce, che non ho capito bene?


grazie.