fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. #include <tuple>
  5. #include <string>
  6.  
  7. template <typename Functor, typename Arg>
  8. decltype(auto) call(Functor f, Arg &&arg) { // (1)
  9. std::cout << "Base case" << std::endl;
  10. }
  11.  
  12. template <typename Functor, typename... Args>
  13. decltype(auto) call(Functor f, std::tuple<Args...> &&args) {
  14. std::cout << "TTT" << std::endl;
  15. }
  16.  
  17. int main() {
  18.  
  19. call(1,std::tuple<int>{1});
  20. call(1,2);
  21.  
  22. std::tuple<int> ti{5};
  23. call(1,ti);
  24. call(1,std::move(ti));
  25.  
  26.  
  27. }
Success #stdin #stdout 0s 3456KB
stdin
Standard input is empty
stdout
TTT
Base case
Base case
TTT