fork(2) download
  1. #include <iostream>
  2. #include <tuple>
  3. #include <type_traits>
  4.  
  5. template<std::size_t I = 0, typename... Tp>
  6. typename std::enable_if<I == sizeof...(Tp), int>::type
  7. elements_size(std::tuple<Tp...>&) { return 0; }
  8.  
  9. template<std::size_t I = 0, typename... Tp>
  10. typename std::enable_if<I < sizeof...(Tp), int>::type
  11. elements_size(std::tuple<Tp...>& t) {
  12. return sizeof(typename std::tuple_element<I, std::tuple<Tp...>>::type) + elements_size<I + 1, Tp...>(t);
  13. }
  14.  
  15. int main()
  16. {
  17. std::tuple<int, int, char> t;
  18. std::cout << elements_size(t) << std::endl;
  19.  
  20. return 0;
  21. }
  22.  
Success #stdin #stdout 0s 3460KB
stdin
Standard input is empty
stdout
9