размер самого большого?
                  
                  
                  пробую сделать примерно так, но что-то оно ругается (неправильное кол-во аргументов шаблонизации):
                  
                  
                  
                  
                  
                  template <int I, typename F, typename... Ts>
                  
                  
                  struct maxSizer
                  
                  
                  {
                  
                  
                      static int ms()
                  
                  
                      {
                  
                  
                          constexpr int f = sizeof(F);
                  
                  
                          constexpr int t = maxSizer<I-1, Ts...>::ms();
                  
                  
                          return f > t ? f : t;
                  
                  
                      }
                  
                  
                  };
                  
                  
                  
                  
                  
                  template <int I, typename F, typename... Ts>
                  
                  
                  struct maxSizer<0, F, Ts...>
                  
                  
                  {
                  
                  
                      static int ms() { return sizeof(F); }
                  
                  
                  };
                  
                  
                  
                  
                  
                  template <typename ... Ts>
                  
                  
                  constexpr int maxTypeSize()
                  
                  
                  {
                  
                  
                      return maxSizer<sizeof...(Ts), Ts...>::ms();
                  
                  
                  }
                  
                  
                  
                  
                  
                  template <typename ... Ts>
                  
                  
                  struct Optional
                  
                  
                  {
                  
                  
                      constexpr int sz = maxTypeSize<Ts...>();
                  
                  
                      uint8_t value[sz];
                  
                  
                      size_t kind;
                  
                  
                  }
                  
                  
                
я вообще в правильном направлении пытаюсь решить задачу?
в смысле std::max({ sizeof(Ts)... }) ?
Время компиляции: *уменьшается*
Такой вариант как раз будет быстрее чем рекурсия
да, так немного проще, спасибо
Обсуждают сегодня