template <class T>
class Serializable : public T, public ISerializable {
public:
  Serializable() : T() {}
  template<class A0>
 Serializable(A0 a0) : T(a0) {}
  …
  template<class A0,〜class AN>
 Serializable(A0 a0,〜AN an) : T(a0,〜an) {}
};
というのはどうか。