fork download
  1. #include <utility>
  2.  
  3. namespace implementation {
  4. template<typename F>
  5. struct Alias {
  6. F f;
  7. template<typename... Args>
  8. auto operator()(Args && ...args) {
  9. return f(std::forward<Args>(args)...);
  10. }
  11. };
  12. }
  13.  
  14. template<typename F>
  15. auto MakeAlias(F f) {
  16. return implementation::Alias<F>{f};
  17. }
  18.  
  19. void foo(int) {}
  20. int bar() {return 42;}
  21.  
  22. auto boo = MakeAlias(foo);
  23. auto baz = MakeAlias(bar);
  24.  
  25. int main() {
  26. boo(21);
  27. baz();
  28. }
Success #stdin #stdout 0s 15232KB
stdin
Standard input is empty
stdout
Standard output is empty