я не понял как ты собираешься эту туплю хранить, мы алиасы менять можем?
В самом простом примере, она одна и генерируется однажды, например, так:
std::tuple<val<1>, val<2>...>
А при инстанцировании нам нужно ожидать столько же булевых дефолтных параметров, при вычислении которых мы либо падаем по sfinae из-за отсутствия регистрации типа из tuple под этим индексом, либо успешно идём дальше, пока не упадём под следующим