types и size объединять в одну сущность
и там constexpr конструктором через initialization_list подсчитать
или натянуть вариадик конструктор на текущую структуру
там размерность из вариадиков можно будет взять
но тогда скорее всего types[20] будет плавать по размеру изза вариадиков
но тогда и size нафиг не нужен
ибо sizeof(types) == size