Как в шаблоне сделать несколько параметров для вызова без перегрузок

У меня есть шаблон примерно такого вида

struct demo {
  template <class T1, class T2, class T3>
  demo(T1&& tipe_1, T2&& tipe_2, T3&& tipe_3) {
   // код который лень повторять
   std::filesysteam::create_directories(tipe_1 / tipe_2);
   // тут тоже код 
  
  }
  // я бы мог сделать так но не хочу повторять много кода из шаблона, но как пример показал
  template <class T1,class T3>
  demo(T1&& tipe_1, T3&& tipe_3) {
   // код который лень повторять
   std::filesysteam::create_directories(tipe_1);
   // тут тоже код 
  
  }
}

ну и собственно как я хочу вызывать этот шаблон

main () {
// так
demo(tipe_1,tipe_2,tipe_3);
// и так и что бы это было без перегрузок
demo(tipe_1,tipe_3);
}

Дополнения, сделал так, пишет ошибку невозможно преобразовать "initializer list" в demo

template <class T1, class... T2,class T3>
   demo(T1&& tipe_1, T2&&... tipe_2, T3&& tipe_3) {
    // код который лень повторять
    std::filesysteam::create_directories(tipe_1 / tipe_2);
    // тут тоже код 
      
      }

Ответы (0 шт):