fork download
  1. #include <iostream>
  2. #include <tuple>
  3. #include <string>
  4.  
  5. template <class... ArgsL>
  6. struct tuple_maker {
  7. typedef std::tuple<ArgsL...> tuple_left;
  8. tuple_maker(tuple_left const & tl = tuple_left()): tuple_(tl) {}
  9.  
  10. tuple_left tuple_;
  11.  
  12. template <class ArgR>
  13. tuple_maker<ArgsL..., ArgR> operator , (ArgR const & r)
  14. {
  15. return std::tuple_cat(tuple_, std::make_tuple(r));
  16. }
  17.  
  18. operator tuple_left & () { return tuple_; }
  19. };
  20.  
  21. tuple_maker<> tuple_of() { return tuple_maker<>(); }
  22.  
  23. int main()
  24. {
  25. std::tuple<char, double, int> mytup;
  26. mytup = (tuple_of(), 'a', 145.21, 100);
  27. return 0;
  28. }
Success #stdin #stdout 0s 2924KB
stdin
Standard input is empty
stdout
Standard output is empty