Guest User

Untitled

a guest
Jan 19th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.23 KB | None | 0 0
  1. template<typename T>
  2. std::unique_ptr<T> make_unique()
  3. {
  4.   return std::unique_ptr<T>(new T());
  5. }
  6. template<typename T, typename A1>
  7. std::unique_ptr<T> make_unique(A1&& arg1)
  8. {
  9.   return std::unique_ptr<T>(new T(std::forward(arg1)));
  10. }
  11. template<typename T, typename A1, typename A2>
  12. std::unique_ptr<T> make_unique(A1&& arg1, A2&& arg2)
  13. {
  14.   return std::unique_ptr<T>(new T(std::forward(arg1), std::forward(arg2)));
  15. }
  16. template<typename T, typename A1, typename A2, typename A3>
  17. std::unique_ptr<T> make_unique(A1&& arg1, A2&& arg2, A3&& arg3)
  18. {
  19.   return std::unique_ptr<T>(new T(std::forward(arg1), std::forward(arg2), std::forward(arg3)));
  20. }
  21. template<typename T, typename A1, typename A2, typename A3, typename A4>
  22. std::unique_ptr<T> make_unique(A1&& arg1, A2&& arg2, A3&& arg3, A4&& arg4)
  23. {
  24.   return std::unique_ptr<T>(new T(std::forward(arg1), std::forward(arg2),
  25.     std::forward(arg3), std::forward(arg4)));
  26. }
  27. template<typename T, typename A1, typename A2, typename A3, typename A4, typename A5>
  28. std::unique_ptr<T> make_unique(A1&& arg1, A2&& arg2, A3&& arg3, A4&& arg4, A5&& arg5)
  29. {
  30.   return std::unique_ptr<T>(new T(std::forward(arg1), std::forward(arg2),
  31.     std::forward(arg3), std::forward(arg4), std::forward(arg5)));
  32. }
Add Comment
Please, Sign In to add comment