factory.hpp

The following code example is taken from the book
C++17 - The Complete Guide by Nicolai M. Josuttis, Leanpub, 2017
The code is licensed under a Creative Commons Attribution 4.0 International License. Creative Commons License

#include <utility>

template <typename T, typename... Args>
T create(Args&&... args)
{
  //...
  return T{std::forward<Args>(args)...};
}